一、list 操作
Python中的列表是一种有序、可变的数据类型,可以存储任意类型的数据。以下是Python中常用的列表操作:
创建列表:使用
[]
或list()
函数创建一个空列表,或者使用[value1, value2, ...]
创建一个包含初始值的列表。访问列表元素:使用下标(从0开始)访问列表中的元素,例如
lst[0]
表示访问列表中的第一个元素。切片操作:使用切片操作符
[start:end:step]
来获取列表中的子列表,其中start
表示开始位置,end
表示结束位置(不包含),step
表示步长。例如,lst[1:4]
表示获取列表中第2个到第4个元素。修改列表元素:使用下标(从0开始)修改列表中的元素,例如
lst[0] = value
表示将列表中的第一个元素修改为value
。添加元素:使用
append()
方法向列表的末尾添加一个元素,使用extend()
方法将另一个列表中的元素添加到当前列表的末尾,使用insert()
方法在指定位置插入一个元素。删除元素:使用
del
语句或remove()
方法删除列表中的元素,使用pop()
方法删除列表中指定位置的元素并返回其值。获取列表长度:使用
len()
函数获取列表中元素的数量。列表排序:使用
sorted()
函数或list.sort()
方法对列表元素进行排序。列表去重:使用
set()
函数或list
的set()
方法来去除列表中的重复元素。列表反转:使用
reverse()
方法将列表中的元素翻转。列表拼接:使用
+
运算符将两个列表拼接成一个新列表,使用*
运算符将列表复制指定次数。列表查找:使用
index()
方法查找指定元素在列表中的位置,使用in
关键字判断指定元素是否在列表中。列表统计:使用
count()
方法统计指定元素在列表中出现的次数。列表遍历:使用
for
循环逐个访问列表中的元素。列表推导式:使用列表推导式可以快速生成一个新的列表,例如
[x for x in lst if x % 2 == 0]
1、list位置逆序:
Python中的
list.reverse()
方法是用于将列表中的元素翻转,会直接修改原列表。该方法没有返回值,即返回值为
None
。
使用方式如下:
lst = [1, 2, 3, 4, 5]
lst.reverse()
print(lst)
输出结果:[5, 4, 3, 2, 1]
注意,
list.reverse()
方法是直接修改原列表的顺序,而不是创建一个新的翻转后的列表。如果需要创建一个新的翻转后的列表,可以使用切片操作符[::-1]
,例如:
lst = [1, 2, 3, 4, 5]
new_lst = lst[::-1]
print(new_lst)
输出结果:[5, 4, 3, 2, 1]
2、list排序:
Python中,可以使用
sorted()
函数和list.sort()
方法对列表进行排序。
sorted()
函数用于对任意可迭代对象进行排序,并返回一个新的已排序的列表
如:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_lst = sorted(lst)
print(new_lst)
输出结果:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
注意:默认情况下,
sorted()
函数和list.sort()
方法都是按升序排序的。如果需要按降序排序,可以使用reverse=True
参数,例如:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_lst = sorted(lst, reverse=True)
print(new_lst)
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
lst.sort(reverse=True)
print(lst)
输出结果:
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
如果列表中的元素是自定义对象,可以通过
key
参数指定排序的关键字。例如,以下代码按照学生的年龄进行倒序排序:
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"{self.name} ({self.age})"
students = [
Student("Alice", 23),
Student("Bob", 21),
Student("Charlie", 20),
Student("David", 22),
]
sorted_students = sorted(students, key=lambda s: s.age,reverse=True)
print(sorted_students)
输出结果:[Alice (23), David (22), Bob (21), Charlie (20)]
3、list去重:
Python中,可以使用
set()
函数或list
的set()
方法来去除列表中的重复元素。例如:
lst = [1, 2, 3, 2, 4, 3, 5, 6, 5]
new_lst = list(set(lst))
print(new_lst)
输出结果:[1, 2, 3, 4, 5, 6]
如果需要保持原来的元素顺序,可以使用列表推导式和
not in
语句来实现去重。如:
lst = [1, 2, 3, 2, 4, 3, 5, 6, 5]
new_lst = []
for x in lst:
if x not in new_lst:
new_lst.append(x)
print(new_lst)
输出结果:[1, 2, 3, 4, 5, 6]
4、list 元素统计
使用python 计数器
from collections import Counter lst=[1,2,2,2,3,6,6,6,6] a = Counter(lst) print(type(a),a) print([i for i in a]) print(list(a)) print({k:v for k,v in a.items()}) print(dict(a))
输出结果:
<class 'collections.Counter'> Counter({6: 4, 2: 3, 1: 1, 3: 1}) [1, 2, 3, 6] [1, 2, 3, 6] {1: 1, 2: 3, 3: 1, 6: 4} {1: 1, 2: 3, 3: 1, 6: 4}
二、dict操作
1.创建字典
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
2.访问字典元素
value1 = my_dict['key1']
3.添加或修改字典元素
my_dict['key4'] = 'value4' # 添加元素 my_dict['key1'] = 'new_value1' # 修改元素
4.删除字典元素
del my_dict['key3'] # 删除指定元素 my_dict.clear() # 清空整个字典
5.遍历字典
for key, value in my_dict.items(): print(key, value)
6.获取字典键值对数量
num_items = len(my_dict)
7.检查字典中是否存在某个键值对
if 'key1' in my_dict: print('key1 exists')
8.获取字典所有键或所有值
keys = my_dict.keys() values = my_dict.values()
9.合并两个字典
my_dict1 = {'key1': 'value1', 'key2': 'value2'} my_dict2 = {'key3': 'value3', 'key4': 'value4'} my_dict1.update(my_dict2) # 将my_dict2合并到my_dict1中
10.获取指定键的值,如果键不存在则返回默认值
value = my_dict.get('key5', 'default_value')
11.将字典转换为列表
my_list = list(my_dict.items())
12.将列表转换为字典
my_list = [('key1', 'value1'), ('key2', 'value2')] my_dict = dict(my_list)
13.通过 values 取到 key 的方法:
dic={"a":1,"b":2,"c":3} list(dic.keys())[list(dic.values()).index(1)]
输出结果:'a'
1、dict 有序创建:
在 Python 3.7 及以后的版本中,字典是有序的,即插入顺序与遍历顺序一致。如果需要在早期版本中创建有序字典,可以使用第三方库
collections
中的OrderedDict
。使用
OrderedDict
的方式和普通字典类似,只需要在创建字典时使用OrderedDict
替代dict
即可:
from collections import OrderedDict
my_dict = OrderedDict({'key1': 'value1', 'key2': 'value2', 'key3': 'value3'})
此时,
my_dict
中的键值对的顺序与插入的顺序一致。可以通过遍历字典来验证:输出结果:
key1 value1 key2 value2 key3 value3
需要注意的是,
OrderedDict
比普通字典的内存消耗要大一些,因为它需要维护一个双向链表来记录插入顺序。如果对字典的顺序并不关心,可以使用普通字典来减少内存开销。
2、dict key值排序:
要对字典的键按照字典序(即按照字母顺序)进行排序,可以将字典的键转换为列表,然后使用
sorted()
函数进行排序。如:
my_dict = {'c': 1, 'a': 3, 'b': 2} sorted_keys = sorted(my_dict.keys())
输出结果:['a', 'b', 'c']
如果需要按照键对应的值进行排序,可以使用
key
参数指定排序依据:sorted_keys = sorted(my_dict.keys(), key=lambda x: my_dict[x])
此时,
sorted_keys
中的元素是按照值排序后的:输出结果:['c', 'b', 'a']
注意:
sorted()
函数返回的是一个列表,而不是字典,因为字典是无序的。如果需要按照键排序后创建一个新的字典,可以使用字典推导式:sorted_dict = {k: my_dict[k] for k in sorted(my_dict.keys())}
此时,
sorted_dict
中的元素是按照键排序后的字典:文章来源:https://www.toymoban.com/news/detail-463201.html输出结果:{'a': 3, 'b': 2, 'c': 1}文章来源地址https://www.toymoban.com/news/detail-463201.html
到了这里,关于python list,dict操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!