range(len(x))
进行迭代在 Python 中,我们通常使用for
循环来迭代可迭代对象。 Python 中的for
循环使用基于集合的迭代,即 Python 在每次迭代时将可迭代的下一项分配给循环变量。 for
循环的通常用例如下:
values = ["a", "b", "c"] for value in values: print(value) # a # b # c
index = 0 for value in values: print(index, value) index += 1 # 0 a # 1 b # 2 c
或另一种常见的方法是使用range(len(x))
:
for index in range(len(values)): value = values[index] print(index, value) # 0 a # 1 b # 2 c
然而,使用enumerate()
有一种更简单、更 Pythonic 的方式来迭代可迭代对象。它在for
循环中的使用方式与通常使用的方式几乎相同,但不是将可迭代对象直接in
for
循环中,或者将其用作range(len(values))
,而是将其放在里面enumerate()
的括号如下所示:
for count, value in enumerate(values): print(count, value) # 0 a # 1 b # 2 c
我们还可以为enumerate()
定义一个start
参数,如下所示:
for count, value in enumerate(values, start=1): print(count, value) # 1 a # 2 b # 3 c
enumerate()
函数返回两个变量:
就像for
循环中的循环变量一样,循环变量可以任意命名,例如,我们可以调用 then index
和value
,它们仍然可以工作。 enumerate()
比for
循环更有效,因为它使您免于记住访问循环内的值并正确使用它,然后还记得推进循环变量的值,这一切都由 Python 自动处理.
newList = [ expression(element) for element in oldList if condition ]
# Using list comprehension to iterate through loop List = [character for character in 'HackerNoon'] # Displaying list print(List) # Output # ['H', 'a', 'c', 'k', 'e', 'r', 'N', 'o', 'o', 'n']
sorted()
对复杂的迭代进行排序Python sorted()
函数按特定顺序(升序或降序)对可迭代对象的元素进行排序,并将它们作为排序列表返回。它可用于对序列(字符串、元组、列表)或集合(集合、字典、冻结集)或任何其他迭代器进行排序。
sorted()
函数的语法如下:
sorted(iterable, key=None, reverse=False)
sorted()
函数最多接受三个参数:
list_inp = [100, 75, 100, 20, 75, 12, 75, 25] set_res = set(list_inp) print("The unique elements of the input list using set():\n") list_res = (list(set_res)) for item in list_res: print(item)
The unique elements of the input list using set(): 25 75 100 20 12
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print("The given list is:", myList) mygen = (element ** 2 for element in myList if element % 2 == 0) print("Elements obtained from the generator are:") for ele in mygen: print(ele)
The given list is: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Elements obtained from the generator are: 4 16 36 64 100
.get()
和.setdefault()
在字典中定义默认值
.setdefault()
方法允许设置dict[key]=default
如果 key 不在 dict 中。
.setdefault()
的语法如下所示:
dict.setdefault(key, default=None)
这是一个示例代码片段,用于了解如何使用.setdefault()
:
a_dictionary = {"a": 1, "b": 2, "d": 4} a_dictionary.setdefault("c", 3) print(a_dictionary)
{'a': 1, 'b': 2, 'd': 4, 'c': 3}
同样的事情也可以通过使用.get()
方法通过传递键的默认值来实现,如下所示:
a_dictionary = {"a": 1, "b": 2, "d": 4} print(a_dictionary.get("c", 3)) print(a_dictionary)
3 {'a': 1, 'b': 2, 'd': 4}
collections.Counter
计算可散列对象
导入集合使集合中的内容可用作:
import collections
from collections import Counter
import collections c = collections.Counter('abcdaab') for letter in 'abcde': print '%s : %d' % (letter, c[letter])
a : 3 b : 2 c : 1 d : 1 e : 0
正如名称“f-string”所说,它们是字符串文字,以 f 开头,花括号包含表达式,这些表达式将在运行时替换为它们的值,然后使用__format__
协议进行格式化。
name = "Eric" age = 74 print(f"Hello, {name}. You are {age}.") # 'Hello, Eric. You are 74.'
.join()
连接字符串在 Python 中,我们可以使用.join()
方法将字符串列表连接成单个字符串。此方法的常用语法如下所示:
'String to insert'.join([List of strings])
它可以以多种方式使用——如果你使用空字符串““
,[字符串列表]只是简单地连接,如果你使用逗号,则会创建一个逗号分隔的字符串。当使用换行符\n
时,每个字符串后都会附加一个换行符。请参见下面的示例:
l = ['aaa', 'bbb', 'ccc'] s = ''.join(l) print(s) # aaabbbccc s = ','.join(l) print(s) # aaa,bbb,ccc s = '-'.join(l) print(s) # aaa-bbb-ccc s = '\n'.join(l) print(s) # aaa # bbb # ccc
{**d1, **d2}
合并字典(Python 3.5+)合并字典的最简单方法是使用解包运算符 ( **
)。此方法的语法如下所示:
{**dict1, **dict2, **dict3}
d1 = {'k1': 1, 'k2': 2} d2 = {'k3': 3, 'k4': 4} print({**d1, **d2}) # {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4}
if x in list
简化 if 语句
colors = ["red", "green", "blue"] c = "red" # cumbersome and error-prone if c == "red" or c == "green" or c == "blue": print("is main color")
colors = ["red", "green", "blue"] c = "red" # better: if c in colors: print("is main color")