python常用高级基础语法总结

python常用高级基础语法总结

from collections import Counter
from operator import itemgetter

1. 变量互换

a, b = 1, 2
print(a, b)  # 1 2
a, b = b, a
print(a, b)  # 2 1

2. 字符串拼接和列表转换

a = ["js", "java", "c"]
print(" ".join(a))  # js java c
it = ["foo", "bar", "abc"]
print(",".join(it))  # foo,bar,abc

it = [2, 5, 4, 54]
print(",".join(map(str, it)))  # 2,5,4,54
print(",".join(list(map(str, it))))  # 2,5,4,54

3.查找列表中频率最高的值, 查找列表中出现次数最多的值

a = [1, 2, 3, 3, 4, 5, 3, 4, 3, 3]
# 方法一:使用Counter
cnt = Counter(a)
print(cnt.most_common())  # 不传参数,默认输出所有的元素和次数
# [(3, 5), (4, 2), (1, 1), (2, 1), (5, 1)]
print(cnt.most_common(2))  # 输出出现次数最多的两个元素
# [(3, 5), (4, 2)]

# max
print(max(a, key=a.count))  # 3
print(max(set(a), key=a.count))  # 3

4.检查两个字符串是不是由相同字母不同顺序组成

print(Counter("hello") == Counter("helol"))  # True
print(Counter("hello") == Counter("helloa"))  # False

5.字符串反转和数字反转

# 方法1
a = "abcdefghijklmn"
print(a[::-1])  # nmlkjihgfedcba

# 方法2
c = ''
for char in reversed(a):
    c += char
print(c)  # nmlkjihgfedcba

# 数字反转
num = 1234567
print(int(str(num)[::-1]))  # 7654321

6.列表反转

a = [1, 2, 3, 5, 4]
print(a[::-1])  # [4, 5, 3, 2, 1]
print(list(reversed(a)))  # [4, 5, 3, 2, 1]

7.转置二维数组

origin = [[1, 2], [3, 2], [5, 8]]
trans = zip(*origin)
print(list(trans))  # [(1, 3, 5), (2, 2, 8)]

8.字典排序 键排序 值排序

d = {"banana": 12, "apple": 45, "orange": 5}
# 方法1
# 键排序
print(sorted(d.items(), key=lambda x: x[1], reverse=True))  # [('apple', 45), ('banana', 12), ('orange', 5)]
# 值排序
print(sorted(d.items(), key=lambda x: x[-1]))  # [('orange', 5), ('banana', 12), ('apple', 45)]

# 方法2
print(sorted(d.items(), key=itemgetter(1)))  # [('orange', 5), ('banana', 12), ('apple', 45)]
print(sorted([('orange', 5, 10), ('banana', 12, 30), ('apple', 45, 15)],
             key=itemgetter(-1)))  # [('orange', 5, 10), ('apple', 45, 15), ('banana', 12, 30)]
# 方法3
print(sorted(d, key=d.get))  # ['orange', 'banana', 'apple']

9.字典合并

d1 = {"a": 12}
d2 = {"b": 2}

print({**d1, **d2})  # {'a': 12, 'b': 2}

print(dict(d1.items() | d2.items()))  # {'a': 12, 'b': 2}

d1.update(d2)
print(d1)  # {'a': 12, 'b': 2}

10.for else

for i in [1, 2, 3, 4]:
    if i == 2:
        # if i == 20:
        print("是2 break")
        break
else:
    print("不是2")

11.获取列表中最大值最小值的索引

lst = [12, 34, 10, 8]


def maxIndex(lst):
    return max(range(len(lst)), key=lst.__getitem__)


def minIndex(lst):
    return min(range(len(lst)), key=lst.__getitem__)


print(maxIndex(lst))

print(lst.index(max(lst)))

12.列表合并

li1 = [1,2]
li2 = [3,4]
li3 = [9]
# 直接相加
res = li1+li2+li3
# sum
res = sum([li1, li2, li3], [])
# extend
li1.extend(li2)
li1.extend(li3)
# *
res = [*li1, *li2, *li3]
# 使用chain
from itertools import chain
res = list(chain(li1, li2, li3)

13.列表包含的多个字典合并

li = [{"a": 111, "b": 22}, {"c": 6}, {"d": 78}]
# 方法1
merged_dict = dict(item for d in li for item in d.items())
print(merged_dict)  # {'a': 111, 'b': 22, 'c': 6, 'd': 78}

# 方法2
import collections
print(dict(collections.ChainMap(*li)))  # {'c': 6, 'b': 22, 'a': 111, 'd': 78}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BRYTLEVSON

打赏的都是天使,创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值