我是编程的新手,正在通过"自动化无聊的东西" Python 3的书。我已经看到其他几个人对“逗号代码”问题提出了疑问。项目,但不是我的具体问题。我想出了一个'工作'开始时,但我无法弄清楚为什么我的print函数给出了int值而不是列表中的字符串。
def reList(items):
i = 0
newItems = str()
for items[i] in range(0,len(items)):
newItems = newItems + items[i] + ', '
print(newItems)
i=i + 1
items = ['apples', 'bananas', 'tofu', 'cats']
reList(items)
谢谢!
答案 0 :(得分:2)
def reList(items):
#i = 0 # no need to initialize it.
newItems = str()
for i in range(0,len(items)): # i not items[i]
newItems = newItems + items[i] + ', '
print(newItems)
#i=i+1 # no need to do
items = ['apples', 'bananas', 'tofu', 'cats']
reList(items)
range(0,len(items))
返回数字0,1,2 ..最多len(items)
(不包括)
for items[i] in range(0,len(items))
正在制作items[i]
0,1,2 ......
这就是打印号码的原因。
for i in range(0,len(items))
将我设为0,1,2 ...... items[i]
会在列表的i
位置获取项目。所以现在你得到的是字符串而不是数字。
更好的方法是 -
def reList(items):
newItems = str()
for it in items:
newItems = newItems + it + ', '
print(newItems)
items = ['apples', 'bananas', 'tofu', 'cats']
reList(items)
答案 1 :(得分:1)
你可以试试这个
for i in range(0,len(items)):
newItems += items[i]
if i!=len(items)-1:
newItems += ','
+=x
就像写newItems = newItems + x
您希望为项的每个值循环,并在末尾添加逗号,当然在最后一步中除外。这就是if的目的。
您也可以使用join在python中执行此操作,并考虑如何在一行中解决您的问题。欢迎使用Python:)