字符串、列表、元祖、字典、集合、数字类型

列表:

     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]]

posted @ 2019-05-24 21:07  enazede  阅读(185)  评论(0编辑  收藏  举报