在Python中添加到列表

2024-09-27 00:14:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我将创建一个程序,用以下数字填充3个列表:

  • A-1 2 3 4 5 6 7 8 9 10
  • B-0 2 4 6 8 10 12 14 16 18 20
  • C-1 4 9 16 25 36 49 64 81 100

到目前为止,我的情况是:

def printList(listName):
    print(listName)
    fillerVariableForInput=input("Press any key to continue")

# Main
Alphalist=[]
for i in range(1,11):
    Alphalist.append(i)
print(Alphalist)

Bravolist=[]
for i in range(0,11):
    Bravolist.append(i*2)
print(Bravolist)

Charlielist=[]
for i in range(1,11):
    Charlielist.append(i*i)
print(Charlielist)

有没有更好或更有效的方法来做到这一点?我的教授坚持认为这是做这件事的“方法”。你知道吗


Tags: 方法in程序列表fordef情况range
3条回答

Python3中的惯用方法:

# the variable name is in snake_case and you have a space
# after each comma (see PEP8 for the full
# story about python naming conventions : https://www.python.org/dev/peps/pep-0008/)
alphalist = list(range(1, 11)) # range generate the list without a for loop
print(alphalist)

# the third parameter of range is the "step": here we count 2 by 2
bravolist = list(range(0, 21, 2))
print(bravolist)

# this is a comprehension list, a syntactic shortcut to write for loops
# building lists. It also works on dict, sets and generators.
charlielist = [i * i for i in range(1, 11)]
print(charlielist)

不管你的老师有多希望你学习for循环的基本知识和列表的方法,在这种情况下,他给你的例子都是正确的。你知道吗

在python2中,range()返回一个list,因此不需要对它调用list()。不过,我建议您学习python3,因为版本2将在5年后消失。你知道吗

是的,假设Python2:

Alphalist = range(1,11)
Bravolist = range(0,21,2)
Charlielist = [x*x for x in xrange(1,11)]

对于python3,您必须将xrange更改为range,将前两个更改为(这些也适用于python2):

Alphalist = list(range(1,11))
Bravolist = list(range(0,21,2))

然而,阅读问题的“细节”可能需要你将这些数字插入现有的列表或将它们附加到列表中(正如标题实际所说)。然后可以使用extend方法:

Alphalist = []
Alphalist.extend( range(1,11) )
# etc

首先,我建议您检查PEP 0008 Style Guide for Python Code。 更具体地说:Naming Conventions。你知道吗

现在来看一下列表,Python有一个非常酷的东西叫做:List Comprehensions。对于你的情况,我会写如下。你知道吗

alpha_list = [i for i in range(1, 11)]
print (alpha_list)

bravo_list = [i*2 for i in range(0, 11)]
print (bravo_list)

charlie_list = [i*i for i in range(1, 11)]
print (charlie_list)

相关问题 更多 >

    热门问题