Python入门-组合数据类型(元组,字典,集合)

发布时间:2023年12月26日

1.元组

元组 是Python中内置的 不可变序列
在Python中使用 ( ) 定义元组,元素与元素之间使用 英文的逗号分隔
元组总 只有一个 元素的是否,逗号不能省略

元组的创建与删除
# 使用小括号创建元组
t=('hello',[10,20,30],'python','world')
print(t)

#使用内置函数 tuple()创建元组
t=tuple('helloworld')
print(t)

t=tuple([10,20,30,40])
print(t)


print('10在元组中是否存在:',(10 in t))
print('10在元组中是否不存在:',(10 not in t))
print('最大值',max(t))
print('最小值',min(t))
print('len:',len(t))
print('t.index',t.index(10))
print('t.count',t.count(10))

#如果元组中只有一个元素
t=(10)
print(t,type(t))

#如果元组中只有一个元素, 逗号不能省
y=(10,)
print(y,type(y))


#元组的删除
# del t
# print(t)
元组的访问与遍历
t=('python','hello','world')

print(t[0])
t2=t[0:3:2]
print(t2)


#元组的遍历
for item in t:
    print(item)

# for+range()+len()
for i in range(len(t)):
    print(i,t[i])

# 使用 enumerate()
for index,item in enumerate(t):
    print(index,'---->',item)


print('*'*55)

for index,item in enumerate(t,start=11):  #序号从11开始
    print(index,'---->',item)

结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\示例5-13元组元素的访问与遍历.py 
python
('python', 'world')
python
hello
world
0 python
1 hello
2 world
0 ----> python
1 ----> hello
2 ----> world
*******************************************************
11 ----> python
12 ----> hello
13 ----> world
元组的生成式:
t=(i for i in range(1,4))
print(t)   # 生成器对象:<generator object <genexpr> at 0x000001F43D738110>

# t=tuple(t)
# print(t)

#遍历
# for item in t:
#     print(item)

print(t.__next__())
print(t.__next__())
print(t.__next__())

t=tuple(t)
print(t)  # 空的,因为你在上面用 __next__() 把元素取出来了,再转成元组类型也是空的


结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\示例5-14元组的生成式.py 
<generator object <genexpr> at 0x00000232A1FC8110>
1
2
3
()

t.__next__() 方法调用一次,就从元组对象里面取一次

2.字典

字典类型 就是根据一个信息查找另外一个信息的方式构成了 “键值对” ,它
表示索引用的键 和 对应的值构成的 成对关系
在这里插入图片描述
字典当中的键 要求是不可变序列,所以谁可以作为字典当中的键??
你的字符串可以、整数可以、浮点可以,元组可以。但是 列表是不可以的!!!!

字典的创建与删除
#(1)创建字典
d={10:'cat',20:'dot',30:'pet',20:'jarvis'}   #后面个相同的key,覆盖了前面个key对应的value
print(d)

#(2)zip函数创建字典
lst1=[10,20,30,40]
lst2=['cat','dog','pet','zooe','jarvis']
zipobj=zip(lst1,lst2)
print(zipobj)   #<zip object at 0x000001F3B14AF980>

#print(list(zipobj))  #[(10, 'cat'), (20, 'dog'), (30, 'pet'), (40, 'zooe')]
print('----------分割线-------------')

d=dict(zipobj)   #一定要注释 11 行,
print(d)

print('----------分割线-------------')

#使用参数创建字典
d=dict(cat=10,dog=20)  #左侧catkey,右侧的是value
print(d)

t=(10,20,30)
print({t:10})  #t是key,10是value, 元组是可以作为字典中的key, 因为元组是不可变的

# lst=[10,20,30]
# print({lst:10})   # TypeError: unhashable type: 'list'  可变数据类型列表不能作为 字典的key

# 字典属于序列,序列的方法都能使用
print('max',max(d))
print('min',min(d))

#注:字典中的key是无序的,Python3.5及其之前的版本字典的key在输出是无序,但是从Python3.6版本之后,Python解释器进行了处理,所以才会看到输出的顺序与添加的顺序一致


结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\示例5-15字典创建与删除.py 
{10: 'cat', 20: 'jarvis', 30: 'pet'}
<zip object at 0x000002E16C44C780>
----------分割线-------------
{10: 'cat', 20: 'dog', 30: 'pet', 40: 'zooe'}
----------分割线-------------
{'cat': 10, 'dog': 20}
{(10, 20, 30): 10}
max dog
min cat
字典元素的访问与遍历
d={10:'cat',20:'dot',30:'pet',20:'jarvis'}
#访问字典中的元素
#(1)使用d[key]方式
print(d[10])

#(2)d.get(key)
print(d.get(10))

#二者之间是有区别的,如果key, d[key]报错, d.get(key)可以指定默认值
#print(d['java'])   #KeyError: 'java'
print(d.get('java'))  #None
print(d.get('java','不存在'))


#字典的遍历
for item in d.items():
    print(item)  #key,value 组成的一个元素

#在使用for遍历时,分别获取key,value
for key,value in d.items():
    print(key,'------->',value)

结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\示例5-16字典元素的访问与遍历.py 
cat
cat
None
不存在
(10, 'cat')
(20, 'jarvis')
(30, 'pet')
10 -------> cat
20 -------> jarvis
30 -------> pet
文章来源:https://blog.csdn.net/weixin_43582499/article/details/135227230
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。