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())])
# 输入时,元素之间用空格间隔