首页 > 编程语言 >Python魔法:20个让你编程事半功倍的奇淫技巧(建议收藏)

Python魔法:20个让你编程事半功倍的奇淫技巧(建议收藏)

时间:2024-03-08 09:33:47浏览次数:32  
标签:20 迭代 Python list age squared 列表 print 奇淫

Python作为一门灵活、充满技巧的语言,有着很多奇技淫巧,今天小编就跟大家分享一下在平时工作中所积累的技巧,这里面既有语法上的技巧,也有库函数的应用,可以帮助大家在平时的工作中提升效率,规避某些错误,一起来看看吧。

  1. 列表推导式
  2. 字典推导式
  3. 使用 zip 进行并行迭代
  4. 使用 enumerate 获取迭代器索引和值
  5. 使用 collections.Counter 进行计数
  6. 使用 map 函数进行批量操作
  7. 使用列表解析展平列表
  8. 列表内容转字符串
  9. 去除列表中重复元素
  10. 将字典值作为参数传递
  11. 两个变量值互换
  12. 连续赋值
  13. 链式比较
  14. 重复列表
  15. 重复字符串
  16. 三目运算
  17. 字典合并
  18. 字符串反转
  19. 列表转字符串
  20. for else 语句

1、列表推导式

使用一行代码生成列表,提高代码的简洁性和可读性。

squared = [x**2 for x in range(10)]
print(squared)

结果
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

当我们使用列表推导式 [x**2 for x in range(10)] 时,它等价于使用普通的 for 循环来生成一个列表。让我们将列表推导式转换为等效的普通 for 循环代码

squared = []  # 创建一个空列表,用于存放计算结果

for x in range(10):  # 对于范围内的每一个数 x
    squared.append(x**2)  # 计算 x 的平方并将结果添加到列表 squared 中

print(squared)  # 打印最终的列表 squared

2、字典推导式

类似列表推导式,用于创建字典。所以代码用大括号包裹

square_dict = {x: x**2 for x in range(5)}
print(square_dict)

结果
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

3、使用 zip 进行并行迭代

将多个可迭代对象压缩在一起进行并行迭代。

names = ['Alice', 'Bob', 'Charlie']
ages = [30, 35, 40]

for name, age in zip(names, ages):
    print(name, age)

结果
Alice 30
Bob 35
Charlie 40

4、使用 enumerate 获取迭代器索引和值

在迭代时获取索引和对应的值,在迭代一些可迭代对象时(例如list,dict),可通过内置enumerate来获取迭代元素的索引值

for index, value in enumerate(names):
    print(index, value)

5、使用 collections.Counter 进行计数

方便地计算可迭代对象中元素的频率。

from collections import Counter

words = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
word_counts = Counter(words)
print(word_counts)

结果
Counter({'apple': 3, 'banana': 2, 'orange': 1})

6、使用 map 函数进行批量操作

通过map函数可进行批量操作,将函数应用于迭代器中的每个元素。

nums = [1, 2, 3, 4, 5]

def square(x):
    return x**2
# 代码表示将list的每个元素迭代后应用square函数中
squared_nums = list(map(square, nums))
print(squared_nums)

结果
[1, 4, 9, 16, 25]

7、使用列表解析展平列表

将嵌套的列表展平为一维列表。

nested_list = [[1, 2, 3], [4, 5], [6, 7, 8]]
flattened_list = [num for sublist in nested_list for num in sublist]
print(flattened_list)

结果
[1, 2, 3, 4, 5, 6, 7, 8]

还有一种方式可以连接两个列表

  
a = [1, 2, 3]  
b = [5, 6, 7]  
  
c = [*a, *b]  
print(c)

结果
[1, 2, 3, 5, 6, 7]

8、列表内容转字符串

而列表中会存在字符串、数字等类型的数据,通过map将列表中元素转换成str类型,然后通过join函数就可以完成列表到字符串的转换。

9、去除列表中重复元素

list1 = [1,2,3,4,5,2,1,4,2,1]  
print(list(set(list1)))

结果
[1, 2, 3, 4, 5]

10、将字典值作为参数传递

当你想将一个字典的值作为参数传递给函数时,你可以使用 ** 运算符来解包字典并将其作为关键字参数传递给函数。以下是一个示例:

def greet(name, age):  
    print(f"Hello, {name}! You are {age} years old.")  
  
person_info = {'name': 'Alice', 'age': 30}  
  
greet(**person_info)

结果
Hello, Alice! You are 30 years old.

11、两个变量值互换

>>> a=1
>>> b=2
>>> a,b=b,a
>>> a
2
>>> b
1

12、连续赋值

a = b = c = 50

13、链式比较

a = 15
if (10 < a < 20):
    print("Hi")

等价于

a = 15
if (a>10 and a<20):
    print("Hi")

14、重复列表

>>> [5,2]*4
[5, 2, 5, 2, 5, 2, 5, 2]

15、重复字符串

>>> "hello"*3
'hellohellohello'

16、三目运算

age = 30
slogon = "牛逼" if  age == 30 else "niubility"

等价于

if age == 30:
    slogon = "牛逼"
else:
    slogon = "niubility"

17、字典合并

>>> a= {"a":1}
>>> b= {"b":2}
>>> {**a, **b}
{'a': 1, 'b': 2}
>>>

18、字符串反转

>>> s = "i love python"
>>> s[::-1]
'nohtyp evol i'
>>>

19、列表转字符串

>>> s = ["i", "love", "pyton"]
>>> " ".join(s)
'i love pyton'
>>>

20、for else 语句

检查列表foo是否有0,有就提前结束查找,没有就是打印“未发现"

found = False
for i in foo: 
	if i == 0: 
		found = True
		break 
if not found: 
	print("未发现")

总结

以上就是小编为大家分享总结的Python技巧,大家还有什么Python的奇淫技巧呢,欢迎转载、收藏、有所收获点赞支持一下。

关注公众号【Python魔法师】,一起进群沟通学习~

qrcode.jpg

标签:20,迭代,Python,list,age,squared,列表,print,奇淫
From: https://www.cnblogs.com/meet/p/18060315

相关文章

  • 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告
     首页政策法规考试介绍考试安排考试用书考试研究与对外交流各地联系方式2024年03月08日 丨回到首页 当前位置:首页>工作动态关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告2024-01-22 来源:中国计算机技术职业资格网关于2023年......
  • 2024年度计算机技术与软件专业技术资格(水平)考试工作计划
     首页政策法规考试介绍考试安排考试用书考试研究与对外交流各地联系方式2024年03月08日 丨回到首页 当前位置:首页>考试安排2024年度计算机技术与软件专业技术资格(水平)考试工作计划2024-03-05 来源:中国计算机技术职业资格网声明:本网(www.rua......
  • python用win32com.client驱动excel时如何控制是否更新链接?
    python中Pywin32库的win32com.clien模块在驱动Excel时有诸多好处:1、可以决定是否显式地打开Excel应用,调试的时候所见即所得;2、可以用近乎一样的VBA语法,几乎能实现VBA可以实现的所有功能;3、它甚至也支持直接调用Excel中已经写好的宏文件。那它有什么缺点呢?我觉得最主要......
  • 联合省选2024游记&反思
    Day0干了啥来着,好像打了点板子,打了点摆,中间被拉去给学弟学妹拍了中考祝福视频,然后一天就过去了。其实没什么心理压力,反正进队希望不是很大。Day1进场发现右边是lcj,左边是lzx,但是他没有来,所以左边变成了wxr。开题发现其实每个题看起来都挺可做的?画了画图发现自己似乎会了......
  • Python正则表达式的语句具体的实用例子_2
    importres="""<divclass='jay'><spanid='1'>周杰伦</span></div><divclass='augus'><spanid='2'>马宁</span></div><divclass='tom'><s......
  • 2024天梯选拔赛(一)
    2024天梯选拔赛(一)A私人笑声#include<bits/stdc++.h>#definedebug(a)cout<<#a<<"="<<a<<'\n';usingnamespacestd;usingi64=longlong;typedefpair<i64,i64>PII;intmain(){ios::sync_with_stdio......
  • 【专题】2023年中国奢侈品市场数字化趋势洞察报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33672原文出处:拓端数据部落公众号2022年,中国的奢侈品消费市场一直处于不断变化和挑战之中,但随着2023年的到来,中国正在全面复苏,市场也充满了机遇和想象空间。自2019年以来,奢侈品品牌一直在中国尝试本地化和数字化策略,将中国的奢侈品消费者与国内市......
  • 2023年第十四届蓝桥杯大赛软件类省赛Java大学B组真题
    2023年第十四届蓝桥杯大赛软件类省赛Java大学B组真题C.数组分割思路:因为最后要是分为2组偶数。由于偶数+偶数=偶数,奇数+奇数=偶数。那么我们的奇数个数一定要是偶数个。如果奇数个数为奇数个那直接就不行了,答案是0。如果奇数的个数是偶数的话,假设偶数n个,奇数m个。\(C_{n}^{0}+......
  • Python正则表达式的具体应用例子及注释
    lst=re.findall(r'\d+',"我的电话号是:10086,我女朋友的电话是:10010")print(lst)#finditer:匹配字符串中所有的内容【返回的是迭代器】,从迭代中拿内容,用“.group”num=re.finditer(r"\d+","我的电话号是:10086,我女朋友的电话是:10010")foriinnum:print(i)""......
  • CSP_J2023总结
    维护中include<bits/stdc++.h>usingnamespacestd;intn,ans,k;intmain(){ cin>>n; while(n){ ans++; if(k==0&&n%3==1)k=ans; if(n%3==0)n-=n/3; elsen-=n/3+1; } cout<<ans<<""<<k; return0;}......