2024年最全Python 三十个实践、建议和技巧(1)

mystring = “The quick brown fox”

mylist = mystring.split(’ ')

print(mylist)

[‘The’, ‘quick’, ‘brown’, ‘fox’]

12、将列表中的字符串合并到一起

与上一条的功能正好相反,从列表中创建字符串,并在两个单词间插入空格:

mylist = [‘The’, ‘quick’, ‘brown’, ‘fox’]

mystring = " ".join(mylist)

print(mystring)

‘The quick brown fox’

也许你会疑惑,为什么不使用mylist.join(" ")呢?归根结底,String.join()函数不仅可以连接列表,还可以连接任何可迭代的列表。将它放在String中会阻止在多个位置实现相同的功能。

13、Emoji

这些表情具有很强的表达能力,能给人留下深刻印象。更重要的是,这在分析社交媒体数据时尤其有用。首先通过以下命令安装emoji模块:

pip3 install emoji

可以按照以下方法使用表情:

import emoji

result = emoji.emojize(‘Python is :thumbs_up:’)

print(result)

‘Python is 👍’

You can also reverse this:

result = emoji.demojize(‘Python is 👍’)

print(result)

‘Python is :thumbs_up:’

14、列表切片操作

列表切片的基本语法是:

a[start:stop:step]

start,stop和step都是可选的(可填可不填),默认值是:

  • start:0

  • stop:列表的末尾

  • step:1

一些例子如下:

We can easily create a new list from

the first two elements of a list:

first_two = [1, 2, 3, 4, 5][0:2]

print(first_two)

[1, 2]

And if we use a step value of 2,

we can skip over every second number

like this:

steps = [1, 2, 3, 4, 5][0:5:2]

print(steps)

[1, 3, 5]

This works on strings too. In Python,

you can treat a string like a list of

letters:

mystring = “abcdefdn nimt”[::2]

print(mystring)

‘aced it’

15、翻转字符串和列表

可以用切片操作来翻转列表或字符串,将step设置为负值即可实现:

revstring = “abcdefg”[::-1]

print(revstring)

‘gfedcba’

revarray = [1, 2, 3, 4, 5][::-1]

print(revarray)

[5, 4, 3, 2, 1]

16、图片显示

可以通过Pillow模块来显示图片,例如显示Kitty小猫,首先安装python图片库:

pip3 install Pillow

然后下载你要显示的图片,并重命名。然后可以通过以下命令来显示图片:

from PIL import Image

im = Image.open(“kittens.jpg”)

im.show()

print(im.format, im.size, im.mode)

JPEG (1920, 1357) RGB

或者也可以直接通过IPython来显示:

Pillow的功能远不止显示图片。它可以对图片进行分析,调整大小,滤波,增强,变形等等。

17、使用map()函数

Python的一个内建函数是 map()。map()的基本语法是:

map(function, something_iterable)

传入的参数是一个函数,和一个需要执行的对象,可以是任何可迭代对象。在下面的例子中使用的是list:

def upper(s):

return s.upper()

mylist = list(map(upper, [‘sentence’, ‘fragment’]))

print(mylist)

[‘SENTENCE’, ‘FRAGMENT’]

Convert a string representation of

a number into a list of ints.

list_of_ints = list(map(int, “1234567”)))

print(list_of_ints)

[1, 2, 3, 4, 5, 6, 7]

map()是一个代替循环的好方式,可以在你的代码中尝试使用map()函数。

18、从列表或字符串中获取唯一元素

通过set()函数可以将列表或字符串转换为集合,集合中的不含重复元素:

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

print (set(mylist))

{1, 2, 3, 4, 5, 6}

And since a string can be treated like a

list of letters, you can also get the

unique letters from a string this way:

print (set(“aaabbbcccdddeeefff”))

{‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’}

19、找出最常出现的值

查找列表或字符串中最常出现的值:

test = [1, 2, 3, 4, 2, 2, 3, 1, 4, 4, 4]

print(max(set(test), key = test.count))

4

你可以尝试自行理解上述代码。好吧,也许你并没有尝试。上述代码的工作原理如下:

  • max()将返回列表中的最大值。key参数接受单个参数函数确定定制排序顺序,在本例中,它是test.count,该函数应用于iterable对象中的每个元素。

  • .count()是列表的一个内建函数,该函数接收一个参数,并计算该参数的出现次数。因此在本例中,test.count(1)返回2,testcount(4)返回4。

  • set(test)返回test列表中的所有唯一值,因此是{1,2,3,4}。

因此在上面的这行语句中我们首先找出了test列表的所有独特值,即{1,2,3,4}。接着,将.count函数应用于set中的每个值,得到一个数量列表,然后通过max找出数量最大的值。

20、创建进度条

可以自行创建进度条,但也可以通过progress模块来快速创建:

pip3 install progress

然后通过以下代码来创建进度条:

from progress.bar import Bar

bar = Bar(‘Processing’, max=20)

for i in range(20):

Do some work

bar.next()

bar.finish()

效果如下:

21、在交互式shell中使用用 _ 来获取上一个表达式的运行结果可以使用下划线操作符来获取最后运行的表达式的输出,在IPython中操作如下:

In [1]: 3 * 3

Out[1]: 9

In [2]: _ + 3

Out[2]: 12

这种方法在python shell中也是适用的,IPython还可以通过Out[n]来获取任意第n个表达式的输出结果。

22、快速创建web服务器

您可以快速启动web服务器,来提供当前工作目录的内容:

python3 -m http.server

如果您想与同事共享一些内容,或者想测试一个简单的HTML站点,这是非常有用的。

23、多行字符串

虽然可以使用三重引号在代码中包含多行字符串,但这并不理想。在三重引号之间的所有内容都变成字符串,包括格式。相比我更喜欢第二种方式,它将多行连接在一起,允许你很好地格式化代码。惟一的缺点是需要显式地放入新行:

s1 = “”"Multi line strings can be put

between triple quotes. It’s not ideal

when formatting your code though"“”

print (s1)

Multi line strings can be put

between triple quotes. It’s not ideal

when formatting your code though

s2 = (“You can also concatenate multiple\n” +

“strings this way, but you’ll have to\n”

“explicitly put in the newlines”)

print(s2)

You can also concatenate multiple

strings this way, but you’ll have to

explicitly put in the newlines

24、用于条件赋值的三元运算符这是另一种使你代码变得简洁,同时保持可读性的方法:

[on_true] if [expression] else [on_false]

一个简单的例子如下:

x = “Success!” if (y == 2) else “Failed!”

25、统计元素的出现次数

可以使用Collections依赖包中的Counter方法来获得一个包含列表中所有惟一元素计数的字典:

from collections import Counter

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

c = Counter(mylist)

print©

Counter({1: 2, 2: 1, 3: 1, 4: 1, 5: 3, 6: 2})

And it works on strings too:

print(Counter(“aaaaabbbbbccccc”))

Counter({‘a’: 5, ‘b’: 5, ‘c’: 5})

26、比较运算符的连接可以在python中链接比较运算符,从而使代码更简洁,可读性更强:

x = 10

Instead of:

if x > 5 and x < 15:

print(“Yes”)

yes

You can also write:

if 5 < x < 15:

print(“Yes”)

Yes

27、加入色彩

通过 Colorama 依赖包,可以在终端中添加更多色彩:

from colorama import Fore, Back, Style

print(Fore.RED + ‘some red text’)

print(Back.GREEN + ‘and with a green background’)

print(Style.DIM + ‘and in dim text’)

print(Style.RESET_ALL)

print(‘back to normal now’)

28、日期处理

python-dateutil模块为标准的datetime模块提供了强大的扩展。首先安装该模块:

pip3 install python-dateutil

你可以用这个库做很多很酷的事情。我讲把我认为特别有用的一个功能作为示例:日志文件中日期的模糊解析等。如下:

from dateutil.parser import parse

logline = ‘INFO 2020-01-01T00:00:01 Happy new year, human.’

timestamp = parse(log_line, fuzzy=True)

print(timestamp)

2020-01-01 00:00:01

只要记住,如果datatime不具备某个功能,那datautil一定有该功能,datautil是datatime功能的延续。

很多小伙伴在学习Python的过程中往往因为没有资料或者没人指导从而导致自己不想学下去了,因此我特意准备了大量的PDF书籍、视频教程,都免费送大家!都在这个群了827513319 不管你是零基础还是有基础都可以获取到自己相对应的学习礼包!包括Python软件工具和2019最新入门到实战教程!

29、整除

在Python 2中,除法运算符(/)默认为整数除法,除非其中一个操作数是浮点数。如下:

最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~

给大家准备的学习资料包括但不限于:

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 27
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值