python基础-列表、元祖、字典(さん)

前言

自春节放假前更新的博客,转眼就来到了清明假期前,时间真是过得飞快,二十几岁,没有十年,今年也要加油呀。
下面这篇博客主要讲非数值型变量,主要介绍①列表②元祖③字典,主要针对这3种类型的变量的简单操作。

列表

说明:表示一串信息的集合,列表索引从0开始,是python里用的最频繁的一种类型。
例子:一个班全部同学的名字,可以定义为一个列表。针对这个列表做简单的增删改查操作。

①列表的定义和取值

# 定义一个列表,字符串需要用双引号引起来
name_list = ["zhangshan", "lisi", "wangwu", "hira", "ergou"]
print(name_list)
print(name_list[1])  # 通过下标取值,下标从0开始
print(name_list.index("lisi"))  # 取当前元素在列表的哪个位置,取索引

结果

['zhangshan', 'lisi', 'wangwu', 'hira', 'ergou']
lisi
1

②列表的增删改操作

# 列表的修改和增加
name_list[1] = "李四"  # 修改下标为1的元素为“李四”
print(name_list)
name_list.append("隔壁老王")  # 在列表末尾追加元素
print(name_list)
name_list.insert(1, "菜花")  # 在下标为1的元素前插入“菜花”元素
print(name_list)
temp_list = ["二狗", "皮蛋", "狗蛋"]
name_list.extend(temp_list)  # 在列表末尾追加一个完整的列表
print(name_list)

# 列表的删除
name_list.remove("李四")
print(name_list)
name_list.extend(temp_list)
print(name_list)
name_list.remove("二狗")  # 当列表里有两个相同元素时,默认是删除第一个
print(name_list)
name_list.pop()  # 默认从最末尾删除元素
print(name_list)
del name_list[1]  # 从内存中删除,建议日常少用
print(name_list)
print(name_list[1])

结果

['zhangshan', '李四', 'wangwu', 'hira', 'ergou']
['zhangshan', '李四', 'wangwu', 'hira', 'ergou', '隔壁老王']
['zhangshan', '菜花', '李四', 'wangwu', 'hira', 'ergou', '隔壁老王']
['zhangshan', '菜花', '李四', 'wangwu', 'hira', 'ergou', '隔壁老王', '二狗', '皮蛋', '狗蛋']
['zhangshan', '菜花', 'wangwu', 'hira', 'ergou', '隔壁老王', '二狗', '皮蛋', '狗蛋']
['zhangshan', '菜花', 'wangwu', 'hira', 'ergou', '隔壁老王', '二狗', '皮蛋', '狗蛋', '二狗', '皮蛋', '狗蛋']
['zhangshan', '菜花', 'wangwu', 'hira', 'ergou', '隔壁老王', '皮蛋', '狗蛋', '二狗', '皮蛋', '狗蛋']
['zhangshan', '菜花', 'wangwu', 'hira', 'ergou', '隔壁老王', '皮蛋', '狗蛋', '二狗', '皮蛋']
['zhangshan', 'wangwu', 'hira', 'ergou', '隔壁老王', '皮蛋', '狗蛋', '二狗', '皮蛋']
wangwu

③列表的统计、排序、遍历操作

# 统计
print(len(name_list))  # 统计列表总个数
print(name_list.count("皮蛋"))  # 统计元素出现的个数

# 排序
a_list = ["A", "F", "C", "P"]
num_list = [3, 5, 0, 2]
print("字母列表初始值为%s,数据列表初始值为%s" % (a_list, num_list))
a_list.sort()  # 升序排序
num_list.sort()
print("将字母列表升序排序%s,将数字列表升序排序%s" % (a_list, num_list))
a_list.sort(reverse=True)  # 降序排序
num_list.sort(reverse=True)
print("将字母列表降序排序%s,将数字列表降序排序%s" % (a_list, num_list))
a_list.reverse()  # 逆转元素
num_list.reverse()
print("将字母列表逆转排序%s,将数字列表逆转排序%s" % (a_list, num_list))

# 遍历列表中的元素
for my_name in name_list:
    print("我的名字叫%s" % my_name)

结果

9
2
字母列表初始值为['A', 'F', 'C', 'P'],数据列表初始值为[3, 5, 0, 2]
将字母列表升序排序['A', 'C', 'F', 'P'],将数字列表升序排序[0, 2, 3, 5]
将字母列表降序排序['P', 'F', 'C', 'A'],将数字列表降序排序[5, 3, 2, 0]
将字母列表逆转排序['A', 'C', 'F', 'P'],将数字列表逆转排序[0, 2, 3, 5]
我的名字叫zhangshan
我的名字叫wangwu
我的名字叫hira
我的名字叫ergou
我的名字叫隔壁老王
我的名字叫皮蛋
我的名字叫狗蛋
我的名字叫二狗
我的名字叫皮蛋
元祖

说明:与列表不同的是,元祖定义之后不可修改,同时元祖可以保存不同类型的变量。
例子:一个同学的信息,可以定义为一个元祖。针对这个元祖做简单的操作。
①元祖的定义和取值

# 元祖定义了不可修改
info_tuple = ("siri", 18, 187)
print(type(info_tuple))  # 查看元祖类型
print(info_tuple[0])  # 取值

empty_tuple = ()  # 定义空元祖
single_tuple = (5)  # 类型为int,非元祖
print(type(single_tuple))
single_tuple1 = (5, )
print(type(single_tuple1))  # 定义一个元素的元祖,类型为tuple
print(info_tuple.index("siri"))  # 取索引

结果

<class 'tuple'>
siri
<class 'int'>
<class 'tuple'>
0

②元祖的统计、遍历和格式化字符

print(info_tuple.count("siri"))  # 统计siri在元祖中的个数
print(len(info_tuple))  # 统计元祖的个数

# 循环遍历 元祖遍历使用的不多,因为元祖元素的类型不同,导致格式化操作不确定
for item in info_tuple:
    print(item)

# 实际运用之格式化字符串
print("%s年龄是%d,身高是%2.f。" % ("hey", 18, 178))
print("%s年龄是%d,身高是%2.f。" % info_tuple)
1
3
siri
18
187
hey年龄是18,身高是178。
siri年龄是18,身高是187

③元祖和列表间相互转换

# 元祖与列表转换
num_list = [1, 2, 3, 4]
print(type(num_list))
num_list = tuple(num_list)  # 将列表转换为元祖类型
print(type(num_list))
num_list = list(num_list)  # 将元祖类型转换为列表类型
print(type(num_list))

结果

<class 'list'>
<class 'tuple'>
<class 'list'>
字典

说明:与列表不同的是,字典是一个无序的对象集合。字典是以键值对的形式成对出现,key是唯一的,key的类型可以是字符串、数字或元祖,value可以是任何类型。
例子:一个同学的信息,可以定义为一个字典。针对这个字典做简单的操作。
①字典的定义和取值

# 字典是一个无序的数据集合,是以key和value的形式展现,
# key是唯一的,类型可以是字符串、数字、元祖
# value可以是任何类型
siri = {"name": "siri",
        "age": 18,
        "gender": True}
print(siri["name"])  # 取值

结果

siri

②字典的增删改和统计

siri["city"] = "苏州"  # 增加元素
print(siri)
siri["age"] = 19  # 修改元素
print(siri)
siri.pop("gender")  # 删除元素
print(siri)
print(len(siri))  # 统计键值对的数量
siri_temp = {"height": 180,
             "lang": "EN",
             "age": 20}
siri.update(siri_temp)  # 合并字典,若key已存在,则更新元素
print(siri)
print(siri_temp)
siri_temp.clear()  # 清空字典
print(siri_temp)

结果

{'age': 18, 'city': '苏州', 'name': 'siri', 'gender': True}
{'age': 19, 'city': '苏州', 'name': 'siri', 'gender': True}
{'age': 19, 'city': '苏州', 'name': 'siri'}
3
{'city': '苏州', 'age': 20, 'height': 180, 'name': 'siri', 'lang': 'EN'}
{'age': 20, 'height': 180, 'lang': 'EN'}
{}

③字典的遍历

# 遍历字典
for k in siri:
    print("%s=%s" % (k, siri[k]))

# 将字典存储在列表中,再循环遍历可得到一个字典的整条信息
card_list = [
    {"name": "hey", "QQ": "987909654", "ID": "87654"},
    {"name": "liming", "QQ": "098779654", "ID": "87655"},
    {"name": "liu", "QQ": "9879098643", "ID": "87656"},
    {"name": "yayoku", "QQ": "193854554", "ID": "87657"}
]
# 循环遍历
for card_info in card_list:
    print(card_info)

结果

city=苏州
age=20
height=180
name=siri
lang=EN
{'name': 'hey', 'ID': '87654', 'QQ': '987909654'}
{'name': 'liming', 'ID': '87655', 'QQ': '098779654'}
{'name': 'liu', 'ID': '87656', 'QQ': '9879098643'}
{'name': 'yayoku', 'ID': '87657', 'QQ': '193854554'}

备注:以上代码①列表②元祖③字典各为一个py文件,从上而下,为了方便阅读,将其拆分。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值