- 将可变转换为不可变
函数frozenset()
用于将可变迭代对象转换为不可变对象。使用这个函数,我们可以冻结一个对象,而不改变它的值。
my_list = [1,2,3,4,5]
my_list = frozenset(my_list)
my_list[3]=7
print(my_list)
输出
Traceback (most recent call last):
File "<string>", line 3, in <module>
TypeError: 'frozenset' object does not support item assignment
当我们在列表中应用 frozenset()
函数时,项目分配是受限的。
- 使用 Python 进行列表理解
列表理解(List Comprehension)
是从另一个列表中创建列表的一种非常紧凑的方式。请看以下代码。第一个是使用简单迭代编写的,第二个是使用列表理解创建的。
square_list = []
for x in range(1,10):
temp = x**2
square_list.append(temp)
print(square_list)
输出
[1, 4, 9, 16, 25, 36, 49, 64, 81]
使用列表理解
square_list = [x**2 for x in range(1,10)]
print(square_list)
输出
[1, 4, 9, 16, 25, 36, 49, 64, 81]
- 在
三元运算符
中使用条件
在大多数情况下,我们在 Python 中使用嵌套的条件结构。可以用三元运算符
代替单行,而不是使用嵌套结构。语法如下所示。
语法:Statement1 if True else Statement2
age = 25
print("Eligible") if age>20 else print("Not Eligible")
输出
Eligible
- 多次重复元素
与字符串乘法类似,我们可以使用乘法运算符多次创建一个用元素填充的列表。
my_list = [3]
my_list = my_list*5
print(my_list)
输出
[3, 3, 3, 3, 3]
- 创建带范围的数字序列
函数range()
对于创建数字序列很有用。它在许多代码片段中都很有用。Range 函数的语法如下:
语法:range(start, end, step)
让我们试着创建一个偶数列表。
my_list = list(range(2,20,2))
print(my_list)
输出
[2, 4, 6, 8, 10, 12, 14, 16, 18]
- 检查两个字符串的
易位构词
如果一个字符串由另一个字符串中的字符组成,那么这两个字符串就是易位构词(Anagram)
。我们可以使用来自collections
模块的相同的 Counter 方法。.
from collections import Counter
my_string_1 = "RACECAR"
my_string_2 = "CARRACE"
if(Counter(my_string_1) == Counter(my_string_2)):
print("Anagram")
else:
print("Not Anagram")
输出
Anagram
- 查找列表中所有元素的出现次数
前面的代码将给出最频繁的值。如果需要知道列表中所有唯一元素的出现次数,那么可以使用collections
模块。collections 是 Python 中一个非常棒的模块,它提供了很多特性。Counter
方法提供了一个包含元素和出现项对的字典。
from collections import Counter
my_list = [1,2,3,1,4,1,5,5]
print(Counter(my_list))
输出
Counter({1: 3, 5: 2, 2: 1, 3: 1, 4: 1})
- 在列表中
查找最频繁的元素
在列表中出现次数最多的元素,那么它将是列表中最频繁的元素。下面的代码片段将帮助你从列表中获取最频繁的元素。
my_list = [1,2,3,1,1,4,2,1]
most_frequent = max(set(my_list),key=my_list.count)
print(most_frequent)
输出
1