如何在Python输出的末尾删除逗号?

时间:2018-11-16 17:39:09

标签: python python-3.x

我正在尝试在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',

4 个答案:

答案 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方法。查看其他答案。