如何為元組中的每個(gè)元素命名锥余,提高程序的可讀性
from collections import namedtuple
# 通常需要采用下標(biāo)訪問(wèn)元素
student = ("Jim", 18, "male", "tomtiddler@163.com")
# 1.采用常量定義
NAME, AGE, SEX, EMAIL = range(4)
# 2.采用nametuple
Student = namedtuple("Student", ["name", "age", "sex", "email"])
s = Student("Jim", 18, "male", "tomtiddler@163.com")
if __name__ == "__main__":
print(student[NAME], student[AGE])
print(s.name, s.age)
print(isinstance(s, tuple))
如何統(tǒng)計(jì)序列中元素出現(xiàn)的頻度
- 某隨機(jī)序列中腹纳,找出出現(xiàn)次數(shù)最高的三個(gè)元素,它們出現(xiàn)了多少次驱犹?
- 對(duì)某英文文章的單詞只估,進(jìn)行詞頻統(tǒng)計(jì),找出出現(xiàn)次數(shù)最高的10個(gè)單詞着绷,它們出現(xiàn)了多少次?
import re
from random import randint
from collections import Counter
data = [randint(0, 20) for _ in range(100)]
c = dict.fromkeys(data, 0)
# c = dict.fromkeys(range(0, 21), 0) # 此處注意需要包括20
for x in data:
c[x] += 1
c2 = Counter(data)
txt = open("doc.txt", "r").read()
c3 = Counter(re.split("\W+", txt))
if __name__ == "__main__":
print(c)
print(c2)
print(c2.most_common(3))
print(c3)
print(c3.most_common(10))
字典
如何根據(jù)字典中值的大小锌云,對(duì)字典中的項(xiàng)進(jìn)行排序
某班英語(yǔ)成績(jī)以字典的形式進(jìn)行存儲(chǔ)荠医,根據(jù)成績(jī)高低進(jìn)行排名
from random import randint
student = {x: randint(50, 100) for x in "xyzabc"}
sor = sorted(zip(student.values(), student.keys()))
sor2 = sorted(student.items(), key=lambda x: x[1])
sor3 = sorted(student.items(), key=lambda x: x[1], reverse=True)
if __name__ == "__main__":
print(sor)
print(sor2)
# 降序排列
print(sor3)