Python基础2 字符串列表字典集合等操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础2 字符串列表字典集合等操作相关的知识,希望对你有一定的参考价值。
列表、元祖操作
列表
语法:
name = [‘jack‘, ‘tom‘, ‘bob‘]
列表切片
列表切片的特点是“顾头不顾尾”
>>> name = [‘jack‘, ‘tom‘, ‘bob‘] >>> name[:] [‘jack‘, ‘tom‘, ‘bob‘] >>> name[1:] [‘tom‘, ‘bob‘] >>> name[1:2] [‘tom‘] >>> name[:-1] [‘jack‘, ‘tom‘] >>> name[::2] [‘jack‘, ‘bob‘] >>> name[0::2] [‘jack‘, ‘bob‘] >>> name[1::2] [‘tom‘]
追加
>>> name [‘jack‘, ‘tom‘, ‘bob‘] >>> name.append(‘ann‘) >>> name [‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]
插入
>>> name [‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘] >>> name.insert(0, ‘alex‘) >>> name [‘alex‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]
修改
>>> name [‘alex‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘] >>> name[0] = ‘xiaoming‘ >>> name [‘xiaoming‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]
删除
# pop删除,以索引删,默认不填写索引删除列表最后一个元素 >>> name [‘xiaoming‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘] >>> name.pop() ‘ann‘ >>> name [‘xiaoming‘, ‘jack‘, ‘tom‘, ‘bob‘] >>> name.pop(-1) ‘bob‘ >>> name.pop(0) ‘xiaoming‘ >>> name [‘jack‘, ‘tom‘] # remove删除,以字符串删 >>> name.remove(‘tom‘) >>> name [‘jack‘] # del删除 >>> name [‘jack‘] >>> del name[0] >>> name []
扩展
>>> l1 = [1,2,3] >>> l2 = [4,5] >>> l1.extend(l2) >>> l1 [1, 2, 3, 4, 5]
拷贝
>>> l2 = l1.copy() >>> l2 [1, 2, 3, 4, 5]
统计
>>> l1 [1, 2, 3, 4, 5] >>> l1.count(1) 1
排序和反转
# 排序,Python3中不同数据类型不能一起排序 >>> l = [3,2,1,4,7,0] >>> l.sort() >>> l [0, 1, 2, 3, 4, 7] # 反转 >>> l [0, 1, 2, 3, 4, 7] >>> l.reverse() >>> l [7, 4, 3, 2, 1, 0]
获取索引
>>> l [7, 4, 3, 2, 1, 0] >>> l.index(3) 2
元祖
元祖又称为可读的列表,一但创建不能修改,它只有2个方法,一个是count,一个是index
语法:
name = (‘jack‘, ‘tom‘)
字符串操作
特性不可修改
print(name.capitalize()) # 首字母大写 print(name.count("a")) # 计算某个字符在字符串中出现的次数 print(name.center(50, "-")) # 居中打印 print(name.encode(‘utf-8‘)) # 字符串转换成bytes类型 print(name.endswith("en")) # 判断字符串以什么结尾 print(name.expandtabs()) # 将tab转多少个空格 print(name.find(‘c‘)) # 从左侧查找索引 print(name.rfind(‘c‘)) # 从右侧查找索引 print("abc123".isalnum()) # 是否为数字和字母 print("abc".isalpha()) # 是否为数字 print("1".isdecimal()) # 是否为十进制 print("123".isdigit()) # 是否为整数 print("12a".isidentifier()) # 是否为合法的变量名 print("abc".islower()) # 是否为小写 print("abc".isupper()) # 是否为大写 print("123".isnumeric()) # 是否只有数字 print(" ".isspace()) # 是否为空格 print("My Name Is".istitle()) # 是否每个首字母都大写 print("My Name Is".isprintable()) # 是否能打印 print("+".join("abc")) # 拼接字符串 print(name.ljust(50, "*")) # 长度不到50,后面用*号补齐 print(name.rjust(50, "*")) # 长度不到50,前面用*号补齐 print("ALEX".lower()) # 变小写 print("alex".upper()) # 变大写 print(" jack ".lstrip()) # 去掉开头空格 print(" jack ".rstrip()) # 去掉结尾空格 print(" jack ".strip()) # 去掉开头和结尾空格 print("jaaaiachen".replace("a", "x", 1)) # 字符串替换 print("abcde".split("a")) # 分割成列表 print("1+2\n+3+4".splitlines()) # 以换行符分割成列表 print("Jack".swapcase()) # 反转大小写 print("abc".title()) # 变成一个title print("abc".zfill(50)) # 不够前面补零
字典操作
字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
语法:
d = { ‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, }
字典的特性:
dict是无序的
key必须是唯一的,so 天生去重
增加
>>> d = {‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘} >>> d {‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} >>> d[‘k3‘] = ‘v3‘ >>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}
修改
>>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} >>> d[‘k1‘] = ‘v11111‘ >>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘}
删除
# pop删除 >>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘} >>> d.pop(‘k3‘) ‘v3‘ >>> d {‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘} # del删除 >>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘} >>> del d[‘k3‘] >>> d {‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘} # 随机删除 >>> d {‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘} >>> d.popitem() (‘k2‘, ‘v2‘) >>> d {‘k1‘: ‘v11111‘}
查找
>>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} # 查看k1是否在字典d中,存在为True,不存在为False >>> ‘k1‘ in d True # get方式取k1如果有则取到值,没有则设置为None >>> d.get(‘k1‘, None) ‘v1‘ >>> d.get(‘xxx‘, None) # 直接取值,k1不存在则报错 >>> d[‘k1‘] ‘v1‘
其他
>>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} >>> d.keys() dict_keys([‘k3‘, ‘k2‘, ‘k1‘]) >>> d.values() dict_values([‘v3‘, ‘v2‘, ‘v1‘]) >>> d.items() dict_items([(‘k3‘, ‘v3‘), (‘k2‘, ‘v2‘), (‘k1‘, ‘v1‘)]) # 循环字典方式1 for k in d: print(k, d[k]) # 循环字典方式2 for k, v in d.items(): print(k, v) # 方式1好于方式2,原因一目了然,上面的d.items()是将字典先转换为列表,这样如果字典较大的话,会很慢
集合操作
集合是一个无序的,不重复的数据组合,它的主要作用如下:
去重,把一个列表变成集合,就自动去重了
关系测试,测试两组数据之前的交集、差集、并集等关系
list_1 = [1,4,5,7,3,6,7,9] list_1 = set(list_1) list_2 = set([2,6,0,66,22,8,4]) print (list_1,list_2) ‘‘‘ #求交集 print (list_1.intersection(list_2)) #求并集 print (list_1.union(list_2)) #求差集,1里面有2里面没有 print (list_1.difference(list_2)) #求子集,1是2的子集 print (list_1.issubset(list_2)) #求父集,1是2的父集 print (list_1.issuperset(list_2)) #求对称差集,两个互相没有的,去掉重复的 print (list_1.symmetric_difference(list_2)) #判断是否有交集,有为false,无为true print (list_1.isdisjoint(list_2)) ‘‘‘ #交集 print (list_1 & list_2) #并集 print (list_1 | list_2) #差集 print (list_1 - list_2) #对称差集 print (list_1 ^ list_2) #添加 list_1.add(999) list_1.update([222,223,224]) #删除 list_1.remove(999) #不存在报错 list_1.discard(888) #不存在不报错 #长度 len(list_1) #测试x是否是a的成员 999 in list_1 #测试x是否不是a的成员 999 not in list_1
以上是关于Python基础2 字符串列表字典集合等操作的主要内容,如果未能解决你的问题,请参考以下文章