文章
待续未完
, 差一个字典
这几天补充
python入门篇06-数据容器(列表 元组 字符串)基础(上)
内容
连续 有序 可使用下标索引
的一类数据容器
, 如下均可以成为序列:
- 列表
- 元组
- 字符串
关键词解释:
切片
解释: [1,2,3,4,5] 取出 [2,3,4] 跟subSting()意思>> 差不多
步长
解释 表示依次取的元素 (间隔-1)
正常操作 [arg1,arg2,arg3]
- arg1 开始下标(包含) : 表头部
- arg2 终止下标(不包含) : 表尾部
- arg3 (步长 1 依次取 2 隔一个取) 负数就是倒序
list1 = [0, 1, 2, 3, 4, 5, 6]
print(list1[1:4]) # [1, 2, 3] print(list1[1:4:1])等效 1可不写
print(list1[-1:-4:-1]) # [6, 5, 4]
print(list1[7:3:-1]) # [6, 5, 4]
tuple1 = (0, 1, 2, 3, 4, 5, 6)
print(tuple1[:]) # (0, 1, 2, 3, 4, 5, 6) :表示全部取出
print(tuple1[::-2]) # (6, 4, 2, 0)
str1 = "张三同学, 被评选为三好学生, 大家鼓掌"
print(str1[::2]) # :从头开始 :一直到结尾 跳2-1个元素取出
print(str1[::-1]) # 掌鼓家大 ,生学好三为选评被 ,学同三张 (反转了)
理解: 无序不重复
的序列 用: {}表示
与java中的set集合理解相同
set1 = {1, 4, 2, 5, 4, 5, 4, 6, 2, 7} # 集合
set2 = set() # 定义空集合
print(set1) # {1, 2, 4, 5, 6, 7}
print(type(set1)) #
.add()
添加新元素 并且
不存在的
set1.add(5)
set1.add(20)
print(set1) # {1, 2, 4, 5, 6, 7, 20}
remove()
set1.remove(1)
print(set1)
pop()
pop = set1.pop()
print(f"取出的元素{pop},剩余集合是: {set1}")
clear()
set1.clear()
print(set1) # set()
difference()
生成
新集合
set01 = {1, 2, 3}
set02 = {1, 5, 6}
set03 = set01.difference(set02) # 找到set01 不在set02集合内的元素
print(set01)
print(set02)
print(set03) # {2, 3}
difference_update()
(直接修改set01)
不生成新集合
set01 = {1, 2, 3}
set02 = {1, 5, 6}
set01.difference_update(set02) # 消除差集 set01将与set02重复的元素删除 (直接修改set01)
print(set01) # {2, 3}
print(set02) # {1, 5, 6}
union()
生成
并集后的新集合
set01 = {1, 2, 3}
set02 = {1, 5, 6}
set03 = set01.union(set02)
print(set01) # 不变
print(set02) # 不变
print(set03) # {1, 2, 3, 5, 6}
len()
print(len(set01))
print("")
for
for i in set01:
print(i)
字典
数据容器
(理解: java的 mapk-v
)
dict1 = {"name": "张三", "age": 18}
dict2 = {}
dict3 = {}
print(type(dict2))
print(dict1)
print(dict2)
print(dict3)
字典中的key是
不可以重复
的. 如果重复是会直接覆盖
掉上一key, 示例如下(pycharm会直接警告)
dict1 = {"name": "张三", "name": 18}
print(dict1) # {'name': 18} 直接覆盖上一个重复的 不会报错
使用方式: 变量名[key名]
dict1 = {"name": "张三", "age": 18}
print(dict1["name"]) # 张三
长得跟json串相同
message = {
"张三": {"age": 20, "nickName": "张三丰", "address": "中国"},
"李四": {"age": 50, "nickName": "李四丰", "address": "地球"},
"王五": {"age": 80, "nickName": "王五丰", "address": "月球"}
}
print(type(message)) #
print(message["张三"]["age"]) # 20
print(message["李四"]["nickName"]) # 李四丰
print(message["王五"]["address"]) # 月球
新增 只要传递的
key不存在 则为新增
传递的key存在,则为修改
dict1 = {"name": "张三", "age": 18}
print(dict1)
传递不存在key = 新增
dict1["address"] = "地球"
print(dict1) # {'name': '张三', 'age': 18, 'address': '地球'}
传递存在的key = 修改
dict1["age"] = 36
print(dict1) # {'name': '张三', 'age': 36, 'address': '地球'}
pop()
字典中删除元素 返回值是此元素
address = dict1.pop("address")
print(address) # 地球
print(dict1) # {'name': '张三', 'age': 36}
clear()
结果是一个
空字典{}
dict1.clear()
print(dict1) # {}
keys()
返回一个列表
dict1 = {"name": "张三", "age": 18}
print(dict1.keys()) # dict_keys(['name', 'age'])
循环遍历元素
# ---> 遍历key(方法一)
for key in dict1.keys():
print(f"{key},{dict1[key]} ", end="") # name,张三 age,18
print("")
# ---> 直接for循环(方法二: )
for key in dict1:
print(f"{key},{dict1[key]} ", end="") # name,张三 age,18
print("")
print(len(dict1)) # 2
java中前后端联调交互必备, 一种有规则的字符串
三好学生
字符串str1 = "掌鼓家大,生学好三为选评被,学同三张"
print(str1[-10:-14:-1]) # 全是倒着截取 然后再倒序
print(str1[8:4:-1]) # 反截取位置 然后倒序
print(str1[::-1][9:13]) # 先倒序 在截取
print(str1[5:9][::-1]) # 先截取在倒序
作者pingzhuyan 感谢观看