Python list,tuple,dict,set高级变量常用方法
程序员文章站
2022-07-02 12:22:02
Python list,tuple,dict,set高级变量常用方法 ......
list列表
增加
- append 在列表中追加,一次只能加一个
- insert 按索引插入,一次只能插一个
- extend 迭代追加到列表中
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.append(2) print(list1) list1.insert(1, 4) print(list1) list1.extend(list2) print(list1)
输出:
[1, 2, 3, 2] [1, 4, 2, 3, 2] [1, 4, 2, 3, 2, 4, 5, 6]
删除
- remove 按照元素值删除,一次只能删除一个
- pop 按索引删除,也可以按切片跟步长删除,默认删除最后一个(输出返回值)
- clear 清空列表
- del 删除整个列表
list1 = [1, 2, 3, 4, 5, 6] list1.remove(3) print(list1) list1.pop() print(list1) list1.pop(2) #或者del list1[2]不推荐 print(list1) list1.clear() print(list1) del list1 print(list1)
输出:
[1, 2, 4, 5, 6] [1, 2, 4, 5] [1, 2, 5] [] nameerror: name 'list1' is not defined
修改
- 按索引去改
- 按切片步长去改
list1 = [1,2,3,4,5,6] list1[2] = 9 print(list1) list1[1:4] = [11,12,13] print(list1)
输出:
[1, 2, 9, 4, 5, 6] [1, 11, 12, 13, 5, 6]
查询
- 按索引,切片加步长去查
- 用for循环查
list1 = [1,2,3,4,5,6] list2 = list1[0:5:2] print(list2) for i in list1: print(i)
输出:
[1, 3, 5] 1 2 3 4 5 6
其他方法
len() 查询列表长度
count 统计某个元素出现的个数
index 通过元素找索引
sort 排序列表,括号里接reverse=true就是从大到小
reverse 倒叙列表
enumerate 用for循环,给序列加序号
list1=[1,2,3,4,5,6,7,4,5,4] print(len(list1)) print(list1.count(4)) print(list1.index(2)) print(list1.index(4)) #默认显示第一个匹配的元素的索引 list1.sort(reverse=true) print("降序:", list1 for index,value in enumerate(list1): print("{0},{1}".format(index,value))
输出:
10 3 1 3 降序: [7, 6, 5, 5, 4, 4, 4, 3, 2, 1] 0,7 1,6 2,5 3,5 4,4 5,4 6,4 7,3 8,2 9,1
tuple元组
tuple元组与列表类似,不同之处在于元组的元素不能修改
查询
- 按索引去查
- 按切片步长去查
tup1 = ('google', 'runoob', 1997, 2000) tup2 = (1, 2, 3, 4, 5, 6, 7 ) print ("tup1[0]: ", tup1[0]) print ("tup2[1:5]: ", tup2[1:5])
输出:
tup1[0]: google tup2[1:5]: (2, 3, 4, 5)
修改
tup1 = (12, 34.56); tup2 = ('abc', 'xyz') #tup1[0] = 100 该方法是非法的 tup3 = tup1 + tup2; #创建一个新的元组 print (tup3)
输出:
(12, 34.56, 'abc', 'xyz')
删除
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
列表和元祖的转换(如想要保护数据,可把list转换成元祖,如修改可转成列表)
tup = ('google', 'runoob', 1997, 2000) print (tup) del tup; print ("删除后的元组 tup : ") print (tup)
输出:
nameerror: name 'tup' is not defined
dict字典
增加
正常方式写入即可,有则不动,无则增加
dict1 = {"name": "小明", "age": 18, "height": 1.75} dict1["wegit"] = 64.5 print(dict1)
输出:
{'name': '小明', 'age': 18, 'height': 1.75, 'wegit': 64.5}
修改
- update 把另一个键值队合并到一个,相同的覆盖,没有的添加
dict2 = {"name": "小华", "age": 18, "curriculum": "english"} dict1.update(dict2) print(dict1)
输出:
{'name': '小华', 'age': 18, 'height': 1.75, 'wegit': 64.5, 'curriculum': 'english'}
删除
- pop 按key删
- popitem 删除最后一个
- clear 清空
- del 删除key或全部删除
dict1 = {'name': '小华', 'age': 18, 'height': 1.75, 'wegit': 64.5, 'curriculum': 'english'} dict1.popitem() print(dict1) dict1.pop("wegit") print(dict1) del dict1["name"] print(dict1) dict1.clear() print()
输出:
{'name': '小华', 'age': 18, 'height': 1.75, 'wegit': 64.5} {'name': '小华', 'age': 18, 'height': 1.75} {'age': 18, 'height': 1.75} {}
查询
- 对键遍历
- 对键和值遍历
d = {'name1' : 'pythontab', 'name2' : '.', 'name3' : 'com'} for key in d: print (key, ' value : ', d[key])
输出:
name1 value : pythontab name2 value : . name3 value : com
for key, value in d.items(): print (key, ' value : ', value)
输出:
name1 value : pythontab name2 value : . name3 value : com
set集合
增加
- add 添加一个字符串
- update 迭代着添加
b = {'b', 'c'} #定义集合 print(b) a = set('boy') #定义集合 print(a) a.add('python') print(a) a.update('update') print(a)
输出:
{'b', 'c'} {'b', 'y', 'o'} {'b', 'python', 'y', 'o'} {'b', 'a', 'python', 'u', 'd', 't', 'e', 'p', 'o', 'y'}
删除
- remove 按元素删除
- discard 集合的删,跟remove删是一样的,没有不会报
- pop 随机删除一个元素,有返回值
- clear 清空集合
- del 删除整个集合
a.remove('python') print(a) a.discard('python') #已经删除python元素了,再用discard删除不会报错 print(a) a.pop() print(a) a.clear() print(a) del a print(a)
输出:
{'b', 'a', 'u', 'd', 't', 'e', 'p', 'o', 'y'} {'b', 'a', 'u', 'd', 't', 'e', 'p', 'o', 'y'} {'a', 'u', 'd', 't', 'e', 'p', 'o', 'y'} set() nameerror: name 'a' is not defined
交集【& or intersection】
x = {"apple", "banana", "cherry"} y = {"google", "runoob", "apple"} z = x.intersection(y) print(z) c = x & y print(c)
输出:
{'apple'} {'apple'}
并集【| or union】
x = {"apple", "banana", "cherry"} y = {"google", "runoob", "apple"} z = x.union(y) print(z) c = x | y print(c)
输出:
{'cherry', 'runoob', 'google', 'banana', 'apple'} {'cherry', 'runoob', 'google', 'banana', 'apple'}
差集【- or difference】
x = {"apple", "banana", "cherry"} y = {"google", "microsoft", "apple"} z = x.difference(y) print(z) z1 = y.difference(x) print(z1) c = x - y print(c) c1 = y - x print(c1)
输出:
{'cherry', 'banana'} {'google', 'microsoft'} {'cherry', 'banana'} {'google', 'microsoft'}
反交集【^ or symmetric_difference】
返回两个集合中不重复的元素
x = {"apple", "banana", "cherry"} y = {"google", "microsoft", "apple"} z = x.symmetric_difference(y) print(z) m = x ^ y print(m)
输出:
{'microsoft', 'google', 'cherry', 'banana'} {'microsoft', 'google', 'cherry', 'banana'}
子集【< or issubset】
a = {1,2} b = {1,2,3,4} print(a.issubset(b)) #a是b的子集 print(a < b)
输出:
true true
超集【> or issuperset】
a = {1,2} b = {1,2,3,4} print(b.issuperset(a)) #b是a的超集 print(b > a)
输出:
true true
frozenset 不可变集合
a = frozenset("abcd") print(a) a.add("d")
报错:attributeerror: 'frozenset' object has no attribute 'add'
输出:
frozenset({'b', 'a', 'd', 'c'})
上一篇: PHP安装BCMath扩展的方法
下一篇: MyBatis的事物管理和缓存
推荐阅读
-
Python中内置数据类型list,tuple,dict,set的区别和用法
-
Python序列之list和tuple常用方法以及注意事项
-
python笔记 list tuple dict set
-
Python中内置数据类型list,tuple,dict,set的区别和用法
-
python的dict,set,list,tuple应用详解
-
【第六篇】Python数据类型--list&tuple&dict&set
-
python: 判断tuple、list、dict是否为空的方法
-
Python list,tuple,dict,set高级变量常用方法
-
Python中的list(列表)、tuple(元组)、dict(字典)和set(集合)
-
Python序列之list和tuple常用方法以及注意事项