30个Python语言技巧

MicroPython相关代码、库、软件、工具
回复
头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

30个Python语言技巧

#1

帖子 shaoziyang »

1 切片

代码: 全选

a = "Hello World!"
print(a[::-1])

"""
!dlroW olleH
"""
切片是 Python 中的一项功能,它依赖于索引来允许用户访问序列的子集。索引只是元素在序列中的位置。如果序列类型可变,则可以使用切片来提取和修改数据。实现切片的格式为:sequence[start:stop:step]。如果未在开始、停止和步骤参数中指定任何值,则序列将实现默认值。默认值为:
  • “开始”默认为 0
  • “stop”默认为序列的长度
  • 如果未指定“step”,则默认为 1。
当提供序列[开始:停止]时,返回的元素将从起始索引到停止

2 就地交换/同时分配
 

代码: 全选

a = 10
b = 5
print(f"First: {a, b}")

"""
First: (10, 5)
"""

a, b = b, a + 2
print(f"Second: {a, b}")

"""
Second: (5, 12)
"""
3 列表与元组 

代码: 全选

import sys

a = [1, 2, 3, 4, 5]
b = (1, 2, 3, 4, 5)

print(f"List size: {sys.getsizeof(a)} bytes")
print(f"Tuple size: {sys.getsizeof(b)} bytes")

"""
List size: 112 bytes
Tuple size: 96 bytes
"""
大多数Python程序员都熟悉列表和元组。它们都是可迭代对象,允许索引,并允许存储异构数据类型。但在某些情况下,使用元组可能优于列表。首先,列表是可变的,这意味着我们可以根据需要修改它们:

代码: 全选

a = [1,2,3,4,5]
a[2] = 8
print(a)

"""
[1,2,8,4,5]
"""
另一方面,元组是不可变的,这意味着尝试修改它们将引发 TypeError。出于这个原因,元组的内存效率更高,因为 Python 可以分配数据所需的正确内存块。相反,在列表中,必须分配额外的内存以防万一我们扩展它 - 这称为动态内存分配。TLDR;在不希望更改数据的情况下,出于内存原因,元组数据结构应优先于列表。元组也比列表快。
隐藏内容
你必须登入/注册才可观看隐藏内容
 

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章