逗号代码 假设你有一个像这样的列表值:
spam = ['apples', 'bananas', 'tofu', 'cats']
编写一个以列表值作为参数并返回a的函数 字符串,包含逗号和空格分隔的所有项目,带和 在最后一项之前插入。例如,传递以前的垃圾邮件 该功能列表将返回'苹果,香蕉,豆腐和猫'。 但是你的函数应该能够处理传递给它的任何列表值 它
我最近得到了一位朋友帮助我制作此代码的帮助。
list = ['thing1', 'thing2', 'thing3', 'thing4']
def ryansthing(list):
string = ''
for i in range(len(list)):
if not i > len(list) - 2:
string += list[i] + ', '
else:
string += 'and ' + list[i] + '.'
print(string)
ryansthing(list)
并且它有效(打印出thing1,thing2,thing3和thing4。),但每当我将代码更改为:
list = input() <----- I changed this to input function instead of setting the variable manually.
def ryansthing(list):
string = ''
for i in range(len(list)):
if not i > len(list) - 2:
string += list[i] + ', '
else:
string += 'and ' + list[i] + '.'
print(string)
ryansthing(list)
它会用逗号分隔每个单个字符:
[, ', t, h, i, n, g, 1, ', ,, , ', t, h, i, n, g, 2, ', ,, ,
', t, h, i, n, g, 3, ', ,, , ', t, h, i, n, g, 4, ', and ]
当它要求我输入时,我只需输入相同的列表:['thing1','thing2','thing3','thing4'
答案 0 :(得分:0)
我认为这就是你要找的东西:
spam = ['apples', 'bananas', 'tofu']
def printTogether(aList):
result = ""
for i in range(len(aList)):
if i == 0:
result = result + aList[i]
elif i == (len(aList)-1):
result = result + " and " + aList[i]
else:
result = result + ", " + aList[i]
print(result)
printTogether(spam)
任务描述有点误导,但从他们提供的示例来看,这就是我认为他们想要的
答案 1 :(得分:0)
首先,您必须指定用户输入数据的方式。如果您希望输入是由单行中的空格分隔的单词,则可以使用以下代码:
spam = input().split()
如果您希望在每个输入词后按Enter键,则可以使用以下代码:
spam=[]
while l != '':
l = input().rstrip()
spam.append(l)
否则:你可以创建自己的方式
答案 2 :(得分:0)
有一个内置功能可以帮到你!它被称为str.join
,您可以在列表中将其称为要加入。
>>> some_list = ["foo", "bar", "spam", "eggs"]
>>> ", ".join(some_list)
foo, bar, spam, eggs
然而,这并没有考虑到&#34;和&#34;需求。通过重写列表的最后一项,这应该是相当简单的。
>>> some_list = ["foo", "bar", "spam", "eggs"]
>>> some_list[-1] = "and " + some_list[-1]
>>> ", ".join(some_list)
foo, bar, spam, and eggs
将其作为函数写入:
def line_them_up(lst):
new_lst = lst[:] # copy the list so we don't change the original
new_lst[-1] = "and " + new_list[-1]
return ", ".join(new_lst)
并获得input
和split
的输入。如果您愿意,您甚至可以将strip
映射到结果列表中,尽管它不是必需的。
user_list = map(str.strip, input("Enter a space-separated list: ").split())