Python列表解析与输入列表

2017-03-01  本文已影响0人  ltoddy

在静态语言中比如C语言,定义一个数组可以是:

int arr[100];

这个数组是给定长度的。
在Python中:

lst = [0] * 100

这个样子就创建了一个含有100个元素(都是0)的列表。

列表解析:
Python提供了更方便的创建列表的方法:

lst = [x for x in range(5)]
# output:[0, 1, 2, 3, 4]
lst = [x * 0.5 for x in range(5)]
# output:[0.0, 0.5, 1.0, 1.5, 2.0]
lst = [x for x in range(5) if x < 3]
# output:[0, 1, 2]

如果列表的数据来自于输入,由于python提供的input()函数是行输入,所有可以是:

lst = []
print("Enter 10 numbers")
for i in range(10):
    lst.append(eval(input()))

但是这个样子,输入是个数字就需要输入十行,每个数据占一行。
但是有时候,数据是一行输入以空格分割的。
在C语言中:

int arr[10];
for (int i = 0; i < 10; ++i) {
    scanf("%d" , arr + i);
}

在Python中:

# 通过列表解析
s = input()
items = s.split(" ")
lst = [eval(x) for x in items]
# 简化之后:
lst = [eval(x) for x in input().split()]

多维列表:
创建多维列表:

row = 2
column = 3
matrix = [[0] * column] * row
# output
# [0, 0, 0]
# [0, 0, 0]

输入列表

matrix = []
row = eval(input())
for i in range(row):
    matrix.append([eval(x) for x in input().split())])
# 输入时,元素之间用空格间隔
上一篇下一篇

猜你喜欢

热点阅读