字符串、列表、元祖、字典、集合、数字类型
列表:
1.作用: 存多个元素/女朋友的名字/男朋友/兴趣爱好/私生子的名字
2.定义方式:[]内用逗号隔开任意数据类型的元素
ruixing_bastard_list = ['小黑fish', '小胖pig', '小黄cat', '阿福tiger', '旺财dog']
ruixing_bastard_list1 = list(['小黑fish', '小胖pig', '小黄cat', '阿福tiger', '旺财dog'])
s_list = list('sdfsdf')
print(s_list)
3.方法:
优先掌握
按索引取值(正向取值+反向取值),即可存也可以取
ruixing_bastard_list = ['小黑fish', '小胖pig', '小黄cat', '阿福tiger', 'xiaobopi']
0 1 2 3 4
print(ruixing_bastard_list[3])
ruixing_bastard_list[0] = '旺财dog'
print(ruixing_bastard_list)
print('*' * 50)
切片
print(ruixing_bastard_list[-1])
print(ruixing_bastard_list[1:3:2])
print(ruixing_bastard_list[-2:])
print('*' * 50)
长度len
print(len(ruixing_bastard_list))
成员运算in和not in
print('fanping' not in ruixing_bastard_list)
print('小黄cat' in ruixing_bastard_list)
追加append # 在列表最后加入一个值
print(ruixing_bastard_list.append('凡平person'))
print(ruixing_bastard_list)
删除del
del ruixing_bastard_list[-1]
print(ruixing_bastard_list)
循环
for i in ruixing_bastard_list:
print(i)
需要掌握
zhiqiang_shuaige_list = ['胡歌', '蔡徐坤', '霍建华', '天承', 'nick']
insert # 在索引前面插入一个值
zhiqiang_shuaige_list.insert(1,'qiaobenai')
print(zhiqiang_shuaige_list)
pop # 默认删除最后一个值,删除指定索引的值
zhiqiang_shuaige_list.pop()
zhiqiang_shuaige_list.pop(-1)
print(zhiqiang_shuaige_list)
remove # 如果删除对象不存在则报错,按照指定的元素删除
zhiqiang_shuaige_list.remove('qiaobenai')
print(zhiqiang_shuaige_list)
count # 获取指定元素的个数
zhiqiang_shuaige_list.append('胡歌')
print(zhiqiang_shuaige_list)
print(zhiqiang_shuaige_list.count('胡歌'))
index # 获取指定元素的索引,但是只会获取第一次
print(zhiqiang_shuaige_list.index('胡歌'))
print(zhiqiang_shuaige_list)
clear # 清空列表
zhiqiang_shuaige_list.clear()
print(zhiqiang_shuaige_list)
copy # 复制
print(zhiqiang_shuaige_list.copy())
print(zhiqiang_shuaige_list)
extend # 扩展,把extend里的列表的元素添加到原列表中
zhiqiang_shuaige_list.extend(['qiaobenai','longzeluola'])
zhiqiang_shuaige_list.extend('qiaobenai')
print(zhiqiang_shuaige_list)
reverse # 反转列表
zhiqiang_shuaige_list.reverse()
print(zhiqiang_shuaige_list)
sort # 排序列表
zhiqiang_shuaige_list.sort()
print(zhiqiang_shuaige_list)
4.存储一个值or多个值: 多个值
5.有序or无序: 有序
6.可变or不可变: 可变
lis = [1,2,3]
print(id(lis))
lis.append(4)
print(id(lis))
元祖
1.作用:类似于列表,只不过元祖只能取不能改
2定义方式:()内用逗号隔开任意数据类型的元素
import random
print(random.randint(1,36))
wenyi_machachong_tuple=('chang', 'tiao', 'rap', 'xiaoluoli', 'renyao')
wenyi_machachong_tuple1=tuple(('chang', 'tiao', 'rap', 'xiaoluoli', 'renyao'))
wenyi_machachong_tuple2=tuple('abcd')
print(wenyi_machachong_tuple2)
3.方法:
1索引取值
print(wenyi_machachong_tuple[-2])
2切片(顾头不顾尾,步长)
print(wenyi_machachong_tuple[:])
3 长度len
print(len(wenyi_machachong_tuple))
4成员运算in和notin
print('zhuping'not in wenyi_machachong_tuple)
5循环
for i in wenyi_machachong_tuple:
print(i)
6 count 获取指定元素的个数
wenyi_machachong_tuple=('xiaoluoli','xiaoluoli')
print(wenyi_machachong_tuple.count('xiaoluoli'))
7 index 获取指定元素的索引值:
print(wenyi_machachong_tuple.index('xiaoluoli')
4.存储一个值or多个值: 多个值
5有序or无序:有序
wenyi_machachong_tuple=('xiaoluoli','xiaoluoli')
print(id(wenyi_machachong_tuple))
wenyi_machachong_tuple=('sdf')
print(id(wenyi_machachong_tuple))
以后只使用列表,从来没有看过元祖
字典
1作用:当列表存在很多值的时候,列表会显得章乱,所以有了字典
2定义方式:{}内以逗号分隔开多个键值对key:value的值,key一般为字符串,key一般对值具有描述意义,value可以是任意数据类型的值,
import random
随机取值:
/###for i in range(257, 300):
id_str = str(id(i))[-2:]
id_int = int(id_str)
if id_int <= 36 and id_int >= 1:
print(id_int)
break
print(id_int // 3)
break
kingzong_info_dict = {'name': 'liujin',
'weight': 180,
'height': 150,
'hobby_list': ['chi', 'he', 'piao', 'du']
3:方法
按key存取值,可存可取
print(kingzong_info_dict['height'])
kingzong_info_dict['height'] -= 1
print(kingzong_info_dict)
print('*' * 50)
长度len
print(len(kingzong_info_dict))
print('*' * 50)
成员运算in和not in # 比较的是key
print(180 in kingzong_info_dict)
print('weight' in kingzong_info_dict)
print('*' * 50)
删除del
del kingzong_info_dict['height']
print(kingzong_info_dict)
print('*' * 50)
键keys()、值values()、键值对items()(**********), # 把取出的所有值当成列表
print(kingzong_info_dict.keys()) # 输出所有的key
print(kingzong_info_dict.values()) # 输出所有的kvalue
print(kingzong_info_dict.items()) # 输出所有的键值对
print('*' * 50)
循环
for k, v in kingzong_info_dict.items():
print(k, v)
需要掌握
get # 如果键不存在,返回None,不会报错;如果键不存在,可以给定默认值
print(kingzong_info_dict['weight'])
print(kingzong_info_dict['height'])
print(kingzong_info_dict.get('weight'))
print(kingzong_info_dict.get('height', 100))
update # 有就更新,没有则添加
dic = {'weight': '90', 'height': 100}
kingzong_info_dict.update(dic)
print(kingzong_info_dict)
print('*' * 50)
print('*' * 50)
print('*' * 50)
print('*' * 50)
fromkeys # 默认把给定列表内的元素取出来当成key,然后使用一个默认value新建一个字典 (*)
dic = dict.fromkeys(['a','b','c','d','e'], 1)
"{'a':1,'b':1,'c':1,'d':1,'e':1}"
print(dic)
setdefault # 如果字典中有该key的话,则key对应的值不变;如果没有,则增加
kingzong_info_dict.setdefault('a','b')
kingzong_info_dict.setdefault('height','b')
print(kingzong_info_dict)
4.存储一个值or多个值: 多个值
5.有序or无序: 无序
6.可变or不可变:可变
dic = {'a':'b'}
print(id(dic))
dic.setdefault('c','d')
print(id(dic))
集合:
1作用:存储多个值
2定义方式:{}内以逗号隔开多个元素,这个元素必须是不可变类型(不是任意的),不可哈希就是可变,可哈希就是不可变
s1={1,1,2,3,"a"}
print(s1)
s2=set()
s2.add(2)
print(s2)
3.方法:
1去重
去重的同时,打乱了列表元素原有的顺序
l1=[1,2,1,2,3,5,100,0,-100]
print(set(l1))
print(list(l1))
print(list(set()))
长度len
pythoner = {'fanping', 'wangdapao', 'wangwu', 'zhaoliu', 'zhangsan', 'wangba'}
linuxer = {'ruiixng', 'lisi', 'wangba', 'wangdapao'}
print(len(pythoner))
print(len(linuxer))
成员运算in 和 not in
print('fangping'in pythoner)
|并集,union
print(pythoner|linuxer)
print(pythoner.union(linuxer))
&交集,intersection
print(pythoner&linuxer)
print(pythoner.intersection(linuxer))
-差集difference
print(pythoner-linuxer)
print(pythoner.difference(linuxer))
^对称差集,symmetric_differece
print(pythoner^linuxer)
print(pythoner.symmetric_difference(linuxer))
==
print(pythoner==linuxer)
print('*'*50)
父集:>,>=,issuperset
print(pythoner>linuxer)
print(pythoner.issuperset(linuxer))
子集:<、<= 、issubset
print(pythoner<linuxer)
print(pythoner.issubset(linuxer))
需要掌握:
add #添加元素
print('*'*50)
s=set()
s.add('a')
print(s)
remove移除元素,元素不存在则报错
print('*'*50)
s.remove('a')
print(s)
difference_update
pythoner = {'fanping', 'wangdapao', 'wangwu', 'zhaoliu', 'zhangsan', 'wangba'}
linuxer = {'ruiixng', 'lisi', 'wangba', 'wangdapao'}
pythoner.difference_update(linuxer)
print(pythoner)
discard
print('*'*50)
python.discard('fanping')
print(pythoner.discard('nick'))
print(pythoner)
isdisjoint
print(pythoner.isdisjoint(linuxer))
4.存储一个值or多个值: 多个值
5.有序or无序: 无序
6.可变or不可变:可变
s = {1, 21}
print(id(s))
s.add(3)
print(id(s))
拷贝
lis = [1,2,3,4]
lis2 = lis # 最基本的拷贝
lis.append(5)
print(lis)
print(lis2)
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
---------------
x = 10
y = x
x+=1
print(x)
print(y)
11
10
浅拷贝
import copy
lis = [1, 2, 3, 4, [5, 6, 7]]
lis2 = copy.copy(lis)
print(lis)
print(lis2)
[1, 2, 3, 4, [5, 6, 7]]
[1, 2, 3, 4, [5, 6, 7]]
-----------------------------
lis.append(8)
print(lis)
print(lis2)
[1, 2, 3, 4, [5, 6, 7], 8]
[1, 2, 3, 4, [5, 6, 7]]
------------------------------
lis[4].append(8)
print(lis)
print(lis2)
[1, 2, 3, 4, [5, 6, 7, 8], 8]
[1, 2, 3, 4, [5, 6, 7, 8]]
------------------------------
print(id(lis[0]))
print(id(lis[1]))
print(id(lis[2]))
print(id(lis[3]))
print(id(lis[4]))
print(id(lis2[0]))
print(id(lis2[1]))
print(id(lis2[2]))
print(id(lis2[3]))
print(id(lis2[4]))
-------------------
1412722144
1412722176
1412722208
1412722240
42282760
1412722144
1412722176
1412722208
1412722240
42282760
--------------
lis[0] += 1
print(lis)
print(lis2)
[2, 2, 3, 4, [5, 6, 7, 8], 8]
[1, 2, 3, 4, [5, 6, 7, 8]]
浅拷贝
l1 = ['a', 'b', 'c', ['d', 'e', 'f']]
import copy
l2 = copy.copy(l1)
print(f"id(l1[0]): {id(l1[0])}")
print(f"id(l1[1]): {id(l1[1])}")
print(f"id(l1[2]): {id(l1[2])}")
print(f"id(l1[3]): {id(l1[3])}")
a
33619896
ab
38371488
--------------------------------
print(f"id(l2[0]): {id(l2[0])}")
print(f"id(l2[1]): {id(l2[1])}")
print(f"id(l2[2]): {id(l2[2])}")
print(f"id(l2[3]): {id(l2[3])}")
l1[0]): a
id(l1[0]): 33619896
l1[0]): ab
id(l1[0]): 38372272
--------------------------------
s = 'a'
print(s)
print(id(s))
s += 'b'
print(s)
print(id(s))
a
33619896
ab
38371488
--------------------------------
print(f"l1[0]): {l1[0]}")
print(f"id(l1[0]): {id(l1[0])}")
l1[0] += 'b'
print(f"l1[0]): {l1[0]}")
print(f"id(l1[0]): {id(l1[0])}")
l1[0]): a
id(l1[0]): 33619896
l1[0]): ab
id(l1[0]): 38372272
-------------------------
print(f"l2[0]: {l2[0]}")
print(f"id(l2[0]): {id(l2[0])}")
l2[0]: a
id(l2[0]): 33619896
深拷贝
import copy
lis = [1,2,3,4,[5,6,7]]
lis2 = copy.deepcopy(lis)
print(id(lis[0]))
print(id(lis[1]))
print(id(lis[2]))
print(id(lis[3]))
print(id(lis[4]))
1358982624
1358982656
1358982688
1358982720
40284872
-----------------
print(id(lis2[0]))
print(id(lis2[1]))
print(id(lis2[2]))
print(id(lis2[3]))
print(id(lis2[4]))
1358982624
1358982656
1358982688
1358982720
40286280
------------------
print(lis)
print(lis2)
[1, 2, 3, 4, [5, 6, 7]]
[1, 2, 3, 4, [5, 6, 7]]
-----------------------
lis[0] +=1
print(lis)
print(lis2)
[2, 2, 3, 4, [5, 6, 7]]
[1, 2, 3, 4, [5, 6, 7]]
--------------------------
lis[4].append(8)
print(lis)
print(lis2)
[2, 2, 3, 4, [5, 6, 7, 8]]
[1, 2, 3, 4, [5, 6, 7]]
程序的道路上一去不复返