当前位置: 移动技术网 > IT编程>脚本编程>Python > python列表、元组、字典、集合的简单操作

python列表、元组、字典、集合的简单操作

2018年08月22日  | 移动技术网IT编程  | 我要评论

布达佩斯游泳世锦赛,孟雪牵手,霍利菲尔德被击倒

一、列表和集合


 1 #author:cgq
 2 import copy
 3 #列表
 4 '''
 5 names=["zhangyang","xiaohei","xiaohei","lisan"]
 6 print(names[0])#某一个
 7 #切片
 8 print(names[1:3])
 9 print(names[0:-1:2])#2代表步长
10 print(names[-1])
11 print(names[-2:])
12 
13 print(names[names.index("zhangyang")])#输出原文和位置信息
14 names.append("dakaizi")#追加最后
15 names.insert(1,"guyun")#追加到某位置
16 names.extend("guyun")#迭代添加
17 names[2] = "xiedi"#替换
18 names[:2] = "ni"
19 names[:2] = "ni43243"#迭代替换
20 names[:2] = [4,3,2,4,3]#迭代替换
21 #删除
22 names.remove("xiedi")#按元素删
23 del names[2]#按序号删
24 del names#删除names
25 names.pop(2)#按序号删
26 n1 = names.pop(2)#删除并返回删除值(默认删除最后一个)
27 names.clear()#清空
28 names.reverse()#反转
29 names.sort()#排序(字母顺序,符号》数字》大写》小写)
30 names.sort(reverse=true)#反向排序(字母顺序,符号》数字》大写》小写)
31 names2=[1,2,3,4]
32 names.extend(names2)#链接
33 del names2#删变量
34 '''
35 '''
36 names=["zhangyang","xiaohei",["cgq","dawang"],"xiaohei","lisan"]
37 #复制第一层
38 #names2=names.copy()
39 #names2=names[:]
40 #names2=list(names)
41 #names2=names#指针指向name2,没有新建(针对列表,字符、字符串是新建【真正的复制】)
42 names2=copy.deepcopy(names)#完全复制
43 names[2][0]="cgq"
44 #print(names,names2)
45 for i in names:
46     print(i)
47 '''
48 #元组
49 # name=("lisi","wangwu")#不能修改
50 # print(name.index("lisi"))
51 
52 name = (1,2,[1,'sdfas'],'jgjhgj')#其中列表可以修改
53 # name[2][1] = name[2][1].lower()
54 # print(name)
55 
56 # s = 'safsadf'
57 # s1 = '_'.join(s)#用'_'相连接,返回字符串
58 # print(s1)
59 #range   [......1,2,3........]
60 # for i in range(-20,20,2):
61 #     print(i)

 二、字典

  1 #author:cgq
  2 #key-value
  3 #版本3.6以后dica字典是有序的
  4 info={
  5     '123456':"ren gong",
  6     '123457':"luan gong",
  7     '123458':"xiao gong",
  8 }
  9 info_a={
 10     '123456':"ren",
 11     '1':"luan",
 12     '12':"gong",
 13 }
 14 #b=dict.fromkeys([6,7,8],"test")#创建一个新的字典,但其中的3个test其实是一个(同一地址)
 15 #info.update(info_a)#更新info,没有的添加,有的修改
 16 #print(info.items())#把字典转换成列表
 17 #循环
 18 for i in info.values():#打印value
 19     print(i)
 20 for i in info:#高效(与for i in inf.keys()一样)
 21     print(i,info[i])
 22 for k,v in info.items():#转换成列表后循环
 23     print(k,v)
 24 '''
 25 print(info)
 26 #print(info['123456'])#提取索引为123456的数据
 27 #修改或添加
 28 info['123456']="人工"#增加(字典中无该key)
 29 info.setdefault('12345610','afasd')#增加(如果有该key,不做任何操作)
 30 info['123459']="大河"#修改(字典中有该key)
 31 #del info['123456']#删除该条数据
 32 #info.pop("123456")#删除该条数据,有返回值
 33 print(info.pop('1234561321','没有此数据'))#如没有该key,则返回'没有此数据'
 34 #info.popitem()#随机删一条数据,返回删除数据(元组)
 35 #info.clear()#清空字典
 36 print(info.get('12345'))#安全的查找方法,查不到输出none
 37 print(info.get('12345','没有'))#安全的查找方法,查不到输出  没有
 38 print(info)
 39 print('12345' in info)#找到输出true,找不到输出false
 40 #info.has_key("1103")2.x版本的写法^上
 41 '''
 42 ''''''
 43 #del info#删除变量
 44 av_catalog = {
 45     "欧美":{
 46         "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
 47         "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
 48         "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
 49         "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
 50     },
 51     "日韩":{
 52         "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
 53     },
 54     "大陆":{
 55         "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
 56     }
 57 }
 58 av_catalog["大陆"]["1024"][1]="可以在国内做镜像"
 59 print(av_catalog.values())#打印除values所有的值
 60 print(av_catalog.keys())#打印所有的keys值
 61 print(av_catalog.items())#打印所有的keys,values值
 62 av_catalog.setdefault("台湾",{"www":["watifak",2]})
 63 print(av_catalog)
 64 
 65 
 66 # = 赋值 == 比较值是否相等   is 比较,比较的是内存地址  id(内存地址的内容)
 67 li1 = [1,2,3]
 68 li2 = li1
 69 li3 = li2
 70 print(id(li1),id(li2))#指向同一个内存地址
 71 
 72 #数字,字符串 小数据池
 73 #数字的范围 -5 -- 256
 74 #字符串:1,不能有特殊字符
 75 #        2,s(一个字符)*20 还是同一个地址,s*21以后都是两个地址
 76 # i1 = 6
 77 # i2 = 6
 78 # print(id(i1),id(i2))#指向同一个内存地址
 79 # i1 = 300
 80 # i2 = 300
 81 # print(id(i1),id(i2))#指向同一个内存地址
 82 
 83 #剩下的 list dict tuple set
 84 # l1 = [1,]
 85 # l2 = [1,]
 86 # print(l1 is l2)#指向非同一个内存地址
 87 
 88 
 89 # s = 'alex'
 90 # s1 = b'alex'
 91 # print(s,type(s))
 92 # print(s1,type(s1))
 93 
 94 # s = '中国'
 95 # print(s,type(s))
 96 # s1 = b'中国'
 97 # print(s1,type(s1))
 98 
 99 s1 = 'alex'
100 # encode 编码,如何将str --> bytes, ()
101 s11 = s1.encode('utf-8')
102 s11 = s1.encode('gbk')
103 print(s11)
104 s2 = '中国'
105 s22 = s2.encode('utf-8')
106 s22 = s2.encode('gbk')
107 print(s22)
view code

三、集合

#author:cgq
'''
集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。
     {}
'''
# set1 = set({1,2,3})
# set1 = {'alex','wusir','ritian','egon','barry',}
# set2 = {1,2,3,[2,3],{'name':'alex'}}  # 错的
liexi_1=[3,2,2,9]
liexi_2=set([0,36,3,99])
liexi_1=set(liexi_1)
print(liexi_1,type(liexi_1))
#交集
print(liexi_1 & liexi_2)
print(liexi_1.intersection(liexi_2))
#并集
print(liexi_1 | liexi_2)
print(liexi_1.union(liexi_2))
#liexi_1-liexi_2(差)
print(liexi_1 - liexi_2)
print(liexi_1.difference(liexi_2))
#子集(是否包含)
print(liexi_1.issubset(liexi_2))
#是否被包含
print(liexi_1.issuperset(liexi_2))
#对称差集(并集-交集)
print(liexi_1 ^ liexi_2)
print(liexi_1.symmetric_difference(liexi_2))


liexi_1.add(98)#添加
liexi_1.update([111,416])#添加多个
liexi_1.remove(98)#删除
print(len(liexi_1))#长度
print(98 in liexi_1)#测试98是否是liexi_1的成员
#print(liexi_1.pop())#随机删除并返回删除值
print(liexi_1.discard('kj'))#删除指定值,没有返回none(不报错),成功无提示

#{} set()
# set1.clear()
# print(set1)  # set()

# del set1#直接删除变量
# print(set1)#已删除此集合

#查
# for i in set1:
view code
#将集合(set)类型转换为frozenset类型;由不可变类型转化为可变类型
s1 = {1, 2, 3}
print(s1,type(s1))
s = frozenset(s1)
print(s,type(s))

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网