我的列表中的打印函数返回 int 值而不是列表中的字符串
Posted
技术标签:
【中文标题】我的列表中的打印函数返回 int 值而不是列表中的字符串【英文标题】:My print function from a list returns int values instead of the strings in the list 【发布时间】:2016-11-25 14:26:02 【问题描述】:我是编程新手,正在研究 Python 3 的“自动化无聊的东西”一书。我见过其他几个人对“逗号代码”项目有疑问,但不是我的具体问题。我想出了一个“工作”位来开始,但我不明白为什么我的打印函数给了我 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)
谢谢!
【问题讨论】:
请按edit
按钮并重新格式化您问题中的代码以匹配您编写的内容。
查看您的for loop
以及缩进
尝试在 for 循环下添加调试打印 (items[i]) 以查看值是什么。将让您深入了解这有什么问题。如果您有问题发表评论,如果没有其他人回复,我稍后会帮助您
你的意思是用for i in
而不是for items[i] in
。
感谢您的格式化帮助。
【参考方案1】:
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))
将 i 设为 0、1、2... 和 items[i]
将您的项目置于列表的 i
th 位置。所以现在你得到的是字符串而不是数字。
更好的方法是 -
def reList(items):
newItems = str()
for it in items:
newItems = newItems + it + ', '
print(newItems)
items = ['apples', 'bananas', 'tofu', 'cats']
reList(items)
【讨论】:
太好了!谢谢 Shreyash!【参考方案2】:你可以试试这个
for i in range(0,len(items)):
newItems += items[i]
if i!=len(items)-1:
newItems += ','
+=x
就像写newItems = newItems + x
您希望循环遍历项目的每个值,并在末尾添加一个逗号,当然最后一步除外。这就是 if 的目的。
您也可以在 python 中使用join 执行此操作,并考虑如何在一行中解决您的问题。欢迎使用 Python :)
【讨论】:
感谢您的欢迎。我能感觉到我的大脑在成长!以上是关于我的列表中的打印函数返回 int 值而不是列表中的字符串的主要内容,如果未能解决你的问题,请参考以下文章