Python基础—列表、元组、集合、字典

1、列表(list)
列表中的数据类型可以包含多种,包含数字、字符串、字典、布尔型等,并且列表中还可以嵌套列表

print(type([1, 2, 3, 4, 5, 6]))
print(type(['Hello', 'World', 1, 6]))
print(type(['Hello', 1, 2, True, 'a']))
print(type([['Hello', 1, 2, 3], [True, 1]]))
# 列表中嵌套列表
print(type([['Hello', 'World'], [1, 2, 3], [True, False]]))
print(type([['Hello', 'World'], [1, 2, 3], [True, False], {'name': 'alex', 'age': 18}]))

结果为:
<class ‘list’>
<class ‘list’>
<class ‘list’>
<class ‘list’>
<class ‘list’>
<class ‘list’>

  • 列表的访问
print(["新月打击", "苍白之瀑", "月之降临", "月神冲刺"][0])
print(["新月打击", "苍白之瀑", "月之降临", "月神冲刺"][3])
print(["新月打击", "苍白之瀑", "月之降临", "月神冲刺"][0:2])
print(["新月打击", "苍白之瀑", "月之降临", "月神冲刺"][-1:])
print(["新月打击", "苍白之瀑", "月之降临", "月神冲刺"][-1])

结果为:

新月打击
月神冲刺
[‘新月打击’, ‘苍白之瀑’]
[‘月神冲刺’]
月神冲刺

可以发现,单一数字的索引来访问的时候,得到的是一个元素;用冒号的方式来访问,得到的是一个列表,哪怕这个列表只有一个元素

  • 列表的操作
print(["新月打击", "苍白之瀑", "月之降临", "月神冲刺"] + ["点燃", "打击"])
print(["点燃", "打击"]*3)

结果为:

[‘新月打击’, ‘苍白之瀑’, ‘月之降临’, ‘月神冲刺’, ‘点燃’, ‘打击’]
[‘点燃’, ‘打击’, ‘点燃’, ‘打击’, ‘点燃’, ‘打击’]

注意: print([“点燃”, “打击”]-[“点燃”]) # 输出错误


2、元组(tuple)

元组中的数据类型也可以包含多种

print((1, 2, 3, 4, 5))
print((1, '-1', True, 'morning', {'name': 'alex', 'age': 18}, [1, 'Hello', '1']))

结果为:

(1, 2, 3, 4, 5)
(1, ‘-1’, True, ‘morning’, {‘name’: ‘alex’, ‘age’: 18}, [1, ‘Hello’, ‘1’])

  • 元组的访问
print((1, 2, 3, 4, 5)[0])
print((1, 2, 'morning', 4, True)[0:3])
print((1, 2, 'morning', 4, True)[-1:])
print((1, 2, 'morning', 4, True)[-1])
print((1, 2, 3) + (4, 5, 6))
print((1, 2, 3) * 3)
print((1, 2)[-1:])

结果为:

1
(1, 2, 'morning')
(True,)
True
(1, 2, 3, 4, 5, 6)
(1, 2, 3, 1, 2, 3, 1, 2, 3)
(2,)

注意:单一数字的索引来访问的时候,得到的是一个元素;用冒号的方式来访问,得到的是一个元组,哪怕这个元组只有一个元素

  • 类型的判断1
print(type((1, 2, 3)))
print(type(1))
print(type((1)))  # 小括号代表运算符号时,比如(1+1)*2,和元组的括号有冲突,Python当括号里面只有一个元素时,规定为运算符号
# 定义只有一个元素的元组
print(type((1,)))
# 表示一个空的元组
print(type(()))

结果为:

<class 'tuple'>
<class 'int'>
<class 'int'>
<class 'tuple'>
<class 'tuple'>
  • 类型的判断2
print(type("Hello"))
print(type(("Hello")))
print(type([1, 2, 3]))
print(type([1]))

结果为:

<class 'str'>
<class 'str'>
<class 'list'>
<class 'list'>

3、str list tuple ---->序列

  • 每个元素都被分配一个序号
print((1, 2, 3)[2])
print('hello world'[2])

结果为:

3
l
  • 都可以进行切片操作
print([1, 2, 3, 4, 5][0:3])
print([1, 2, 3, 4, 5][-1:])
print("Hello world"[0:8:2])

结果为:

[1, 2, 3]
[5]
Hlow
  • 都可进行 + 和 *
  • 判断元素是否在序列中
print(3 in [1, 2, 3, 4, 5])
print(3 not in [1, 2, 3, 4, 5])

结果为:

True
False

  • 都可以求取序列的长度、元素的最大最小值
print(len([1, 2, 3, 4, 5, 6]))
print(len("Hello world"))

print(max([1, 2, 3, 4, 5, 6]))
print(min([1, 2, 3, 4, 5, 6]))

print(max("Hello world"))
print(min("Helloworld"))

结果为:

6
11
6
1
w
H

求取ASCII 的求取

print(ord('H'))
print(ord('w'))
print(ord(' '))

结果为:

72
119
32


4、 集合

  • 无序
print(type({1, 2, 3, 4, 5, 6}))
# print({1, 2, 3, 4, 5, 6}[0])  # 错误

结果为:

<class 'set'>
  • 不重复
print({1, 1, 2, 3, 6, 6})

结果为:

{1, 2, 3, 6}
  • 长度
print(len({1, 2, 3}))

结果为:

3
  • 剔除3,4,求集合的差集
print({1, 2, 3, 4, 5, 6}-{3, 4})

{1, 2, 5, 6}

  • 求集合的交集
print({1, 2, 3, 4, 5, 6} & {3, 4})

结果为:

{3, 4}
  • 两个合并成一个,不出现相同的元素,合集或并集
print({1, 2, 3, 4, 5, 6} | {3, 4, 7})

结果为:

{1, 2, 3, 4, 5, 6, 7}
  • 定义一个空的集合
print(type({}))
print(type(set()))

结果为:

<class 'dict'>
<class 'set'>}

约个拓展练习可好:

快乐的LeetCode — 14. 最长公共前缀 方法2中包含了集合的巧妙使用


5、字典(dict)
形式:{key1:value1,key2:value2,key3:value3,} 。 可以有很多个key和value,属于集合类型(set),不是序列类型

  • 访问
print({'Q': "新月打击", 'W': "苍白之瀑", 'R': "月之降临", 'E': "月神冲刺"}['Q'])

# 相同的key情况,尽管有结果输出
print({'Q': "新月打击", 'Q': "苍白之瀑", 'R': "月之降临", 'E': "月神冲刺"}['Q'])

# 验证发现,已经存在丢失
print({'Q': "新月打击", 'Q': "苍白之瀑", 'R': "月之降临", 'E': "月神冲刺"})

结果为:

新月打击
苍白之瀑
{'Q': '苍白之瀑', 'R': '月之降临', 'E': '月神冲刺'}
  • 可以有数字类型的key
print({1: "新月打击", '1': "苍白之瀑", 'R': "月之降临", 'E': "月神冲刺"})

# key必须是不可变的类型, 数字1,字符串"1"
# 反例 print({[1, 2]: "新月打击", 'Q': "苍白之瀑", 'R': "月之降临", 'E': "月神冲刺"})

结果为:

{1: '新月打击', '1': '苍白之瀑', 'R': '月之降临', 'E': '月神冲刺'}
  • value 本身可以是 int float str set dict list…
print({1: "新月打击", '1': "苍白之瀑", 'R': {1, 2, 3}, 'E': "月神冲刺"})

结果为:

{1: '新月打击', '1': '苍白之瀑', 'R': {1, 2, 3}, 'E': '月神冲刺'}
  • 定义空的字典
print(type({}))

结果为:

<class 'dict'>

大家加油!
第4章 Python中表示“组”的概念与定义.mp4

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 中,列表元组集合字典是四种常用的数据结构,它们各自具有不同的特性和用途: 1. 列表(List):列表是一种有序、可变的数据结构,用于存储多个元素。列表使用方括号 [] 来表示,元素之间用逗号分隔。列表中的元素可以是任意类型,并且可以通过索引进行访问、修改和删除。列表还支持切片操作和多种方法(如添加、删除和排序等)。 2. 元组(Tuple):元组是一种有序、不可变的数据结构,用于存储多个元素。元组使用圆括号 () 来表示,元素之间用逗号分隔。与列表不同,元组一旦创建就不能修改,因此具有更高的安全性。元组通常用于存储不可变的数据,如坐标、日期和配置信息等。 3. 集合(Set):集合是一种无序、可变的数据结构,用于存储唯一的元素。集合使用花括号 {} 来表示,元素之间用逗号分隔。集合中不允许重复的元素,且没有索引,不支持切片操作。集合支持常见的数学集合操作,如并集、交集、差集等。集合常用于去重操作和判断元素的存在性。 4. 字典(Dictionary):字典是一种无序、可变的键值对数据结构,用于存储多个键值对。字典使用花括号 {} 来表示,每个键值对之间用冒号 : 分隔,键值对之间用逗号分隔。字典中的键必须是唯一的,而值可以是任意类型。字典通过键来访问、修改和删除对应的值,具有快速的查找速度。 总结起来,列表适合存储有序、可变的多个元素;元组适合存储有序、不可变的多个元素;集合适合存储无序、唯一的元素;字典适合存储键值对数据。根据具体的需求和数据特性,选择合适的数据结构可以更有效地处理和操作数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值