当前位置: 首页 > 编程笔记 >

17个Python小技巧分享

敖毅
2023-03-14
本文向大家介绍17个Python小技巧分享,包括了17个Python小技巧分享的使用技巧和注意事项,需要的朋友参考一下

1.交换变量


x = 6

y = 5

x, y = y, x

print x >>> 5 print y >>> 6

2.if 语句在行内


print "Hello" if True else "World"

>>> Hello

3.连接

下面的最后一种方式在绑定两个不同类型的对象时显得很酷。


nfc = ["Packers", "49ers"]

afc = ["Ravens", "Patriots"]

print nfc + afc

>>> ['Packers', '49ers', 'Ravens', 'Patriots']

print str(1) + " world" >>> 1 world

print `1` + " world" >>> 1 world

print 1, "world" >>> 1 world print nfc, 1 >>> ['Packers', '49ers'] 1

4.计算技巧


#向下取整

print 5.0//2

>>> 2

# 2的5次方

print 2**5

>> 32

注意浮点数的除法


print .3/.1

>>> 2.9999999999999996

print .3//.1

>>> 2.0

5.数值比较


x = 2

if 3 > x > 1:

   print x

>>> 2

if 1 < x > 0:

   print x

>>> 2

6.两个列表同时迭代


nfc = ["Packers", "49ers"]

afc = ["Ravens", "Patriots"]

for teama, teamb in zip(nfc, afc):

     print teama + " vs. " + teamb

>>> Packers vs. Ravens

>>> 49ers vs. Patriots

7.带索引的列表迭代


teams = ["Packers", "49ers", "Ravens", "Patriots"]

for index, team in enumerate(teams):

    print index, team

>>> 0 Packers

>>> 1 49ers

>>> 2 Ravens

>>> 3 Patriots

8.列表推导

已知一个列表,刷选出偶数列表方法:


numbers = [1,2,3,4,5,6]

even = []

for number in numbers:

    if number%2 == 0:

        even.append(number)

用下面的代替


numbers = [1,2,3,4,5,6]

even = [number for number in numbers if number%2 == 0]

9.字典推导


teams = ["Packers", "49ers", "Ravens", "Patriots"]

print {key: value for value, key in enumerate(teams)}

>>> {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0}

10.初始化列表的值


items = [0]*3

print items

>>> [0,0,0]

11.将列表转换成字符串


teams = ["Packers", "49ers", "Ravens", "Patriots"]

print ", ".join(teams)

>>> 'Packers, 49ers, Ravens, Patriots'

12.从字典中获取元素

不要用下列的方式

data = {'user': 1, 'name': 'Max', 'three': 4}
try:
   is_admin = data['admin']
except KeyError:
   is_admin = False
替换为


data = {'user': 1, 'name': 'Max', 'three': 4}

is_admin = data.get('admin', False)

13.获取子列表


x = [1,2,3,4,5,6]

#前3个

print x[:3]

>>> [1,2,3]

#中间4个

print x[1:5]

>>> [2,3,4,5]

#最后3个

print x[-3:]

>>> [4,5,6]

#奇数项

print x[::2]

>>> [1,3,5]

#偶数项

print x[1::2]

>>> [2,4,6]

14.60个字符解决FizzBuzz

前段时间Jeff Atwood 推广了一个简单的编程练习叫FizzBuzz,问题引用如下:

写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。
这里有一个简短的方法解决这个问题:

for x in range(101):print"fizz"[x%3*4::]+"buzz"[x%5*4::]or x

15.集合

用到Counter库


from collections import Counter

print Counter("hello")

>>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})

16.迭代工具

和collections库一样,还有一个库叫itertools


from itertools import combinations

teams = ["Packers", "49ers", "Ravens", "Patriots"]

for game in combinations(teams, 2):

    print game

>>> ('Packers', '49ers')

>>> ('Packers', 'Ravens')

>>> ('Packers', 'Patriots')

>>> ('49ers', 'Ravens')

>>> ('49ers', 'Patriots')

>>> ('Ravens', 'Patriots')

17.False == True

在python中,True和False是全局变量,因此:


False = True

if False:

   print "Hello"

else:

   print "World"

>>> Hello

以上就是个人总结的一些常用的Pyton小技巧,比较适合初学者,希望大家能够喜欢。

 类似资料:
  • 本文向大家介绍收集的几个Python小技巧分享,包括了收集的几个Python小技巧分享的使用技巧和注意事项,需要的朋友参考一下 获得当前机器的名字: 获取当前工作路径: 获取系统的临时目录: 字符串与int,long,float的转化: python的变量看起来是没有类型的,其实是有变量是有类型的。 使用locale模块下的atoi和atof来将字符串转化为int或float,或者也可以直接使用i

  • 本文向大家介绍Python 分享10个PyCharm技巧,包括了Python 分享10个PyCharm技巧的使用技巧和注意事项,需要的朋友参考一下 # 0. PyCharm 常用快捷键 # 1. 查看使用库源码 PyCharm 主程序员在 Stackoverflow 上答道 经常听人说,多看源码。源码不仅能帮我们搞清楚运行机制,还能学习优秀的库或者框架的最佳实践。 调用库时,你可以在你好奇的几乎任

  • 一个关于 gdb 使用小技巧的文档。100 在这里可能只是表明很多,可能不止这点小技巧。

  • 在这里列举一些我使用Python时积累的小技巧。这些技巧是我在使用Python过程中经常使用的。之前很零碎的记在笔记本中,现在整理出来,和大家分享,也作为Python快速教程的一个补充。 import模块 在Python经常使用import声明,以使用其他模块(也就是其它.py文件)中定义的对象。 1) 使用__name__ 当我们编写Python库模块的时候,我们往往运行一些测试语句。当这个程序

  • 本文向大家介绍10个Python小技巧你值得拥有,包括了10个Python小技巧你值得拥有的使用技巧和注意事项,需要的朋友参考一下 列表推导式 你有一个list: bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子: [2, 4, 6, 8, 10] 大多初学者,根据之前语言的经验会大概这样来做 但是有更好的方法: bag = [elem * 2 for el

  • 7.1 连接到远程Lisp 7.1.1 设置Lisp镜像 如果你不想通过一般的基于Emacs的方式加载swank,只需要加载swank-load.lisp文件就可以了。只需要在一个运行中的Lisp镜像 [1] 里执行以下代码: (load "/path/to/swank-loader.lisp") 现在,我们需要做的就是启动swank服务器。在第一个例子里,我们假设使用默认配置。 (swank:c