zoukankan      html  css  js  c++  java
  • python数据类型基本操作

    目录

    1、字符串.... 1

    2、列表[ ] 3

    3、元组 ( ) 4

    4、字典 { } 4

    5、SET集合... 7

    1、字符串

    1.1查找字符串

    find查找

    >>> msg = "what's your company's name?"

    >>> msg.find('name')

    22

    >>> msg.find('s')

    5

    index跟find()方法一样,只不过如果str不在 string中会报一个异常.

    >>> msg = "what's your company's name?"

    >>> msg.index('name')

    22

    >>> msg.index('ndf')

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

    ValueError: substring not found

    1.2大小写转换

    >>> msg = 'WangChuang'

    >>> msg.upper()  #转换 string 中的小写字母为大写

    'WANGCHUANG'   

    >>> msg.lower()  #转换 string 中所有大写字符为小写.

    'wangchuang'

    >>> msg.swapcase() #大小写互换

    'wANGcHUANG'

    1.3分割成列表

    >>> msg = "what's your company's name?"

    >>> msg.split()

    ["what's", 'your', "company's", 'name?']

    >>> msg.split("'")      #指定分隔符,默认按空格

    ['what', 's your company', 's name?']

    1.4将列表转换成字符串

    >>> msg_list = ['a','b','c']

    >>> msg_list

    ['a', 'b', 'c']

    >>> ''.join(msg_list)

    'abc'

    >>> ' '.join(msg_list)   ##以空格分割

    'a b c'

    >>> '|'.join(msg_list)   ##以|分割

    'a|b|c'

    1.5检查字符串开头和结尾

    以什么值开头和以什么值结尾,是为true假为false

    >>> a = 'bcd'

    >>> a

    'bcd'

    >>> a.startswith('a')  #检查开头

    False

    >>> a.startswith('b')

    True

    >>> a.endswith('d')  #检查结尾

    True

    >>> a.endswith('c')

    False

    1.6替换字符串内容

    >>> str = 'wangchuang'

    >>> str.replace("wang","hello")

    'hellochuang'三

    1.7检查字符串开头和结尾

    以什么值开头和以什么值结尾,是为true假为false

    >>> a = 'bcd'

    >>> a

    'bcd'

    >>> a.startswith('a')  #检查开头

    False

    >>> a.startswith('b')

    True

    >>> a.endswith('d')  #检查结尾

    True

    >>> a.endswith('c')

    False

    1.8替换字符串内容

    >>> str = 'wangchuang'

    >>> str.replace("wang","hello")

    'hellochuang'

    1.9统计字符串里某个字符出现的次数

    >>> srt = 'ababab'

    >>> srt.count('b')

    3

    2、列表[ ]

    列表list:

    • 查找和插入的时间随着元素的增加而增加
    • 占用空间小,浪费内存很少
    • 通过下标查询
    • 有序

     定义列表:

    • name_list = ['a', 'b', 'c', 'd']  #直接定义
    • list = [i for i in range(10)]  #使用列表生成式

     

    • def foo(x):

                    return x**x
              list = [foo(i) for i in range(10)]  #生成式里面还可以是函数哦

     

    2.1

    >>> name_list[1]

    'b'

    >>> name_list[2]

    'c'

    >>> name_list.index('d') #取值对应的下标号

    >>> name_list[1:4]

    ['b', 'c', 'd']

    >>> name_list[1:3]  #按范围取值

    ['b', 'c']

    >>> name_list[-2:]  #取最后两个值

    ['c', 'd']

    >>> name_list[:2]  #取前两个

    ['a', 'b']

    2.2

    >>> name_list.append('e') #添加数据

    >>> name_list

    ['a', 'b', 'c', 'd', 'e']

    >>> name_list.insert(2,'wang') ##指定位置插入数据

    >>> name_list

    ['a', 'b', 'wang', 'c', 'd', 'e']

    >>> name_list.extend('12345')  #每一个字符都当成一个元素,添加进去

    >>> name_list

    ['a', 'b', 'd', 'e', '1', '2', '3', '4', '5']

    2.3

    >>> name_list.remove('wang')  #按值删除

    >>> name_list

    ['a', 'b', 'c', 'd', 'e']

    >>> name_list

    ['a', 'b', 'c', 'd', 'e']

    >>> del name_list[2]           #按下标删除

    >>> name_list

    ['a', 'b', 'd', 'e']

    2.4

    >>> name_list

    ['a', 'b', 'd', 'e']

    >>> name_list.reverse()   #反转列表

    >>> name_list

    ['e', 'd', 'b', 'a']

    3、元组 ( )

    元组只读,不可修改

    >>> msg = ('a','b','c')

    >>> msg[0]

    'a'

    >>> list(msg)    #元组转换成列表

    ['a', 'b', 'c']

    >>> tuple(a)  #列表转换成元组

    ('a', 'b', 'c')

    4、字典 { }

    字典dict:

    • 查找和插入的速度极快,不会随着key的增加而增加
    • 需要占用大量的内存,内存浪费多
    • Key不可变
    • 默认无序

    4.1字典增删改查

    >>> dic = {'a':1,'b':2,'name':'wangchuang'}

    >>> dic['name']   #查看

    'wangchuang'

    >>> dic.get('name') #get查看,就算没有这个键,也不会报错

    'wangchuang'

    >>> dic['c'] = 3   #增加

    >>> dic

    {'a': 1, 'c': 3, 'b': 2, 'name': 'wangchuang'}

    >>> dic['c'] = 33  #修改

    >>> dic

    {'a': 1, 'c': 33, 'b': 2, 'name': 'wangchuang'}

    >>> dic.pop('c')   #删除

    33

    >>> dic

    {'a': 1, 'b': 2, 'name': 'wangchuang'}

    del dic['name'] #删除

     

    4.2字典详细用法

    >>> dic.has_key('name')  #有该键返回true,否则false

    True

    >>> dic.get('name')  #get查看,就算没有这个键,也不会报错

    'wangchuang'

    >>> dic.get('name', 'wang')  #如果没有,就返回‘wang‘,有就返回原来的值

    'wangchuang'

    >>> dic.items()  #将所有的字典项以列表方式返回

    [('a', 1), ('b', 2), ('name', 'wangchuang')]

    >>> dic.keys()  #显示keys

    ['a', 'b', 'name']

    >>> dic.values()  #显示值values

    [1, 2, 'wangchuang']

    >>> dic.setdefault('stu',1122) #如果字典里没有该键stu,就创建增加stu键,并把值1122赋给stu

    1122

    >>> dic

    {'a': 1, 'stu': 1122, 'b': 2, 'name': 'wangchuang'}

    >>> dic.setdefault('stu',1133)  #如果字典里有该键,就把值取出来

    1122

    >>> dic

    {'a': 1, 'stu': 1122, 'b': 2, 'name': 'wangchuang'}

    >>> cid = {'name':'wc','add':'beijing'}

    >>> dic.update(cid)    #合并两个字典,如果键有重复的,cid的就生效

    >>> dic

    {'a': 1, 'stu': 1122, 'add': 'beijing', 'b': 2, 'name': 'wc'}

    >>> name_info

    {'age': '22', 'name': 'wang'}

    >>> name_info2 = name_info

    >>> name_info2

    {'age': '22', 'name': 'wang'}

    >>> name_info2['age'] = 44   #修改为44

    >>> name_info

    {'age': 44, 'name': 'wang'}

    #以上name_info和name_info2某一个里面的元素,另一个也跟着变,类似于软链接

    #下面使用copy就不会了,直接复制一份,对某一个操作不会影响另一个

    >>> name_info3 = name_info.copy()

    >>> name_info3

    {'age': 44, 'name': 'wang'}

    >>> name_info3['age'] = 88  #修改为88

    >>> name_info3

    {'age': 88, 'name': 'wang'}

    >>> name_info

    {'age': 44, 'name': 'wang'}     #值没有变

    5、SET集合

    特点:

    • 无序
    • 元素不重复

    功能:

    • 关系测试
    • 去重

    集合对象是一组无须排列的可哈希的值,集合成员可以做字典的键

    x = {1,2,3,4}  #和字典一样,都是用{ }。Python2.6版本貌似不支持

     

    5.1 更新集合

    增:add update

    >>> x.add(3)   #再添加个重复的3      

    >>> x

    set([1, 2, 3, 4])   #结果添加不上

    >>> x.update('wang')  #添加多个元素

    >>> x

    {'w', 1, 2, 3, 4, 'g', 'a', 'n'}

    >>> x.add('chuang')  #一次只能添加一个元素

    >>> x

    {'w', 1, 2, 3, 4, 'g', 'a', 'n', 'chuang'}

    删:remove pop

    >>> x.pop()  #删除

    1

    >>> x

    set([2, 3, 4])

    5.2 关系测试:交,并,差,对称差

    >>> x = {1,2,3,4}

    >>> y = {3,4,5,6}

    >>> x &y  #取交集

    set([3, 4])

    >>> x | y  #取并集

    set([1, 2, 3, 4, 5, 6])

    >>> x - y #求x与y之间的差集,我是x,y没有1,2

    set([1, 2])

    >>> y - x #求y与x之间的差集,我是y,x没有5,6

    set([5, 6])

    >>> x ^ y #对称差集

    set([1, 2, 5, 6])

    5.3 子集、超集

    >>> x = {1,2,3,4}

    >>> z = {2,3,4}

        

    >>> z.issubset(x) #x包含z,所以z是x的子集  

    True

    >>> z.issuperset(x) #z是否包含x,x不是z的超集

    False

  • 相关阅读:
    NOIP2017 时间复杂度 大模拟
    【Python】CV2的一些基本操作
    【Python】类、对象、self
    【Ubuntu18.04】清空回收站
    小飞机可以解决git clone没有返回的问题吗?
    sqlserver2005 远程服务器数据 完全拷贝 到本地数据库
    Microsoft Visual Studio 2005 多线程时 解决不是该线程创建的来访问
    MS SqL2000 数据库置疑状态的解决方法[转]
    vue 函数配置项watch以及函数 $watch 源码分享
    Vue生命周期之beforeCreate vue 生命周期详解
  • 原文地址:https://www.cnblogs.com/chuangcc/p/10766780.html
Copyright © 2011-2022 走看看