您的位置:

Python列表生成式

一、Python列表生成式多层判断

lst = [(i,j) for i in range(3) for j in range(3) if i==j]

print(lst) 

# Output: [(0, 0), (1, 1), (2, 2)]

在Python中,列表生成式除了可以用来生成列表之外,还可以用来进行多层判断来生成指定的数据结构。上述代码中,通过两层for循环生成了一个含有元组的列表。其中,只有当i==j时才会生成元组。

二、Python列表生成式0100

binary_list = [int(i) for i in '{0:04b}'.format(4)]

print(binary_list)

# Output: [0, 1, 0, 0]

在Python中,列表生成式也可以用来生成指定的位数的二进制列表。上述代码中,通过字符串格式化生成了一个含有4位二进制数的列表。

三、Python列表顺序输出

lst = [1, 2, 3]
for i in lst[::-1]:
    print(i)

# Output: 3 2 1

在Python中,通过列表切片,可以很轻松地生成倒序排列的列表。上述代码中,通过倒序切片生成了一个倒序排列的列表。

四、Python列表生成式的用法

# 使用if进行判断,只有当i为偶数时才会生成元素
lst = [i for i in range(10) if i%2==0]

# 使用内置函数进行操作,将所有元素的值加1
lst = [i+1 for i in lst]

print(lst)

# Output: [1, 3, 5, 7, 9, 11]

在Python中,列表生成式可以方便地进行数据操作。上述代码中,首先通过if语句筛选出所有偶数,然后通过内置函数将所有元素的值加1。

五、Python列表生成式 线程数

import threading

threads = [threading.Thread(target=worker) for i in range(5)]

# 开启所有线程
for thread in threads:
    thread.start()

# 等待所有线程完成
for thread in threads:
    thread.join()

在Python中,通过列表生成式可以方便地生成多个线程,同时控制线程数量。上述代码中,通过5次循环生成了5个线程,并通过循环的方式开启和等待所有线程的完成。

六、Python列表生成器

# 列表生成器实现斐波那契数列
def fib():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

f = fib()

print([next(f) for i in range(10)])

# Output: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

在Python中,列表生成式可以直接生成列表,但是当需要生成大量数据时会占用大量的内存空间。而列表生成器则可以在生成数据时节省内存空间。上述代码中,通过yield语句生成了一个斐波那契数列的生成器。

七、Python列表生成式写等差数列

a, d = 1, 2
n = 10

lst = [a + d * i for i in range(n)]

print(lst)

# Output: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

在Python中,可以使用列表生成式方便地生成等差数列。上述代码中,通过循环生成了一个含有10个元素的等差数列。

八、Python列表生成式实现九九乘法表

lst = [f"{i}x{j}={i*j}" for i in range(1,10) for j in range(1, i+1)]

print(lst)

# Output: ['1x1=1', '2x1=2', '2x2=4', '3x1=3', '3x2=6', '3x3=9', '4x1=4', '4x2=8', '4x3=12', '4x4=16', '5x1=5', '5x2=10', '5x3=15', '5x4=20', '5x5=25', '6x1=6', '6x2=12', '6x3=18', '6x4=24', '6x5=30', '6x6=36', '7x1=7', '7x2=14', '7x3=21', '7x4=28', '7x5=35', '7x6=42', '7x7=49', '8x1=8', '8x2=16', '8x3=24', '8x4=32', '8x5=40', '8x6=48', '8x7=56', '8x8=64', '9x1=9', '9x2=18', '9x3=27', '9x4=36', '9x5=45', '9x6=54', '9x7=63', '9x8=72', '9x9=81']

在Python中,使用列表生成式可以轻松实现九九乘法表。上述代码中,通过两层循环生成了九九乘法表的所有元素。

九、Python列表生成式交换元素位置

lst = [1, 2, 3, 4]
i, j = 2, 3

lst[i], lst[j] = lst[j], lst[i]

print(lst)

# Output: [1, 2, 4, 3]

在Python中,可以通过列表生成式轻松地交换两个元素的位置。上述代码中,通过元组赋值的方式交换了列表中的第2个和第3个元素。

十、Python列表生成式 sleep

import time

lst = [time.sleep(i) for i in range(5)]

print(lst)

# Output: [None, None, None, None, None]

在Python中,使用列表生成式可以轻松实现让线程等待一段时间的功能。上述代码中,通过time.sleep()方法生成了一个含有5个元素的列表。