Skip to content

Func set dict sort

1. 函数 def func():

语法

def func(r): # 函数名为 func,这是自定义的
    PI = 3.1415926
    return r * PI * PI # 函数需要一个返回值,用 return

函数可以被多次利用,就像 len() 函数用来求列表长度一样。

例题 1

  • 写一个函数,求半径为 r 的圆的面积。
def S(r): # 求半径为 r 的圆的面积
    PI = 3.1415926
    return r * PI * PI
print(S(5)) # 输出 49.3480203218738

例题 2

  • 判断一个整数是否是偶数,如果是,返回 True
def even(n):
    if n % 2 == 0:
        return True
    return False # 可以按条件写多条 return 语句

2. 集合 set()

语法

集合可以用来存数据。它和 list 相似,不同的是 set 中数据自动排序,而且不会重复出现。

s = set()
s.add(2)
s.add(2) # 添加元素,但如果已存在就什么都不做
s.add(1)
print(s)
# 输出为 {1, 2},已经自动排序

s.remove(1) # 删除元素,如果元素不存在,则会发生错误
print(s)
# 输出为 {2}

s.clear() # 清空元素

print(2 in s) # 判断元素是否在集合中存在,输出为 False

你还可以这样创建一个 set

basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)
# 输出为 {'orange', 'banana', 'pear', 'apple'}

注意:basket = {} 这种写法创建的是一个空的字典,不是一个空的集合。创建空集合应该使用 basket = set()

例题 1

  • 输入 $n$ 个数,去掉其中重复的数并从小到大输出,最后输出去重后还剩几个数。
n = int(input())
s = set(map(int, input().split())) # 将读入的一行数转换为 set
print(*s) # 输出 s 中的所有数字
print(len(s))

详细介绍

https://www.runoob.com/python3/python3-set.html

3. 字典 dict()

语法

# 创建字典
d1 = { 'abc': 456 }
d2 = { 'abc': 123, 98.6: 37 }

# 获取字典中对应 key 的值
print(d1['abc']) # 456
print(d2[98.6]) # 37

# 修改字典
d1['abc'] = 123
print(d1['abc']) # 123

# 删除字典元素
del d1['abc'] # 删除一个键
d2.clear() # 清空字典

例题 1

https://blog.csdn.net/wc19862274581/article/details/124285529

问题描述:

输入字符串,输出字符串中出现次数最多的字母及其出现次数。如果有多个字母出现次数一样,则按字符从小到大顺序输出字母及其出现次数。

输入形式:

一个字符串。

输出形式:

出现次数最多的字母以及其出现次数。

样例输入:

abcccd

样例输出:

c 3

代码实现:

s = input()
ma = {}
for c in s:
    if c not in ma:  # 如果这个字母没有出现过就初始化为 1
        ma[c] = 1
    else:  # 否则加 1
        ma[c] += 1

ans = max(ma.values())  # ma.values() 获取所有的值
# items() 获取所有的键值对,用 sorted() 进行排序后重新用 dict() 重新组成一个有序字典 。这种排序是优先按键排序,其次按值排序
ma = dict(sorted(ma.items()))
for c, cnt in ma.items():
    if cnt == ans:
        print(c, cnt)

4. 排序 .sort() sorted()

ref: https://www.freecodecamp.org/chinese/news/python-sort-how-to-sort-a-list-in-python/

a = [2, 1, 3]
b = sorted(a) # 不改变 a
a.sort() # 改变 a
a.sort(reverse=True)

# 按特定函数排序
programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]
programming_languages.sort(key=len)
programming_languages.sort(key=len, reverse=True)

# 按自定义函数排序
programming_languages = [{'language':'Python','year':1991},
{'language':'Swift','year':2014},
{'language':'Java', 'year':1995},
{'language':'C++','year':1985},
{'language':'Go','year':2007},
{'language':'Rust','year':2010},
]

def get_year(element):
    return element['year']

programming_languages.sort(key=get_year)
programming_languages.sort(key=get_year, reverse=True)