我正在尝试在Python中按字母顺序对单词的字母进行排序。但是在输出的末尾有一个逗号。(我试过了''.sort()命令,它很好用,但是在输出的开头和结尾有方括号)。输入和输出必须是这样的:
word
'd','o','r','w'
这是我的代码:
alphabet='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
word=str(input())
for i in alphabet:
for j in word:
if i==j:
print("'{}',".format(i),end='')
这是我的输出:
word
'd','o','r','w',
答案 0 :(得分:2)
Python字符串具有join()
函数:
ls = ['a','b','c']
print(",".join(ls)) # prints "a,b,c"
Python也有一个'list comprehension',您可以像这样使用它:
alphabet='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
word=str(input())
matches = [l for l in word if l in alphabet]
print(",".join(sorted(matches)))
所有列表理解操作都将l
放在列表if
中,它在alphabet
中。所有候选l
都来自word
变量。
sorted
是将执行简单排序的函数(尽管可能进行更复杂的排序)。
最后;以下是一些其他有趣的选项,它们全都产生"a,b,c,d"
:
"a,b,c,d,"[:-1] . # list-slice
"a,b,c,d,".strip(",") . # String strip
答案 1 :(得分:2)
将其存储在数组中,然后在末尾打印
alphabet='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
word=str(input())
matches = []
for i in alphabet:
for j in word:
if i==j:
matches.append("'{i}',".format(i=i))
#now that matches has all our matches
print(",".join(arrayX) # join it
或其他人提到的
print(",".join(sorted(word)))
答案 2 :(得分:0)
您要使用string.join()函数。
alphabet='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
','.join(alphabet)
实际上没有任何必要将字符串放入列表中,join会很高兴地对其进行迭代。在python 2.7和3.6上试用过
答案 3 :(得分:-2)
诀窍在于您使用的算法。
您要在每个字段之后(最后一个字段除外)添加一个逗号和一个空格。但是很难知道哪个是最后一个,直到为时已晚。
如果您可以将第一个字段设置为特例会容易得多,因为这很容易预测。
因此将算法转换为:在每个字段之前(第一个字段除外)添加一个逗号和一个空格。这样会产生相同的输出,但算法要简单得多。
总是最好使用一个库(除非只是为了实践而这样做)。 python具有join方法。查看其他答案。