Python 如何从字典中输出值而不将其打印为列表?
我被分配到词汇组 以下是其中一个测试用例: 输入:Python 如何从字典中输出值而不将其打印为列表?,python,dictionary,Python,Dictionary,我被分配到词汇组 以下是其中一个测试用例: 输入: 喝茶、晒太阳、吃蝙蝠 输出: 吃茶 蝙蝠 nat tan 但是,我一直得到以下输出,其中字谜被封装在列表中,每行的打印顺序每次都不同: ['ate','eat','tea'] ['nat','tan'] ['bat'] 或 ['nat','tan'] ['bat'] [“吃”、“吃”、“茶”] 或 ['ate','eat','tea'] ['bat'] ['nat','tan'] 我如何解决这个问题,使其输出时不受列表限制,并且可能以正确的
喝茶、晒太阳、吃蝙蝠
输出:
吃茶
蝙蝠
nat tan
但是,我一直得到以下输出,其中字谜被封装在列表中,每行的打印顺序每次都不同:
['ate','eat','tea']
['nat','tan']
['bat']
或
['nat','tan']
['bat']
[“吃”、“吃”、“茶”]
或
['ate','eat','tea']
['bat']
['nat','tan']
我如何解决这个问题,使其输出时不受列表限制,并且可能以正确的顺序
这就是我到目前为止所做的:
import sys
from collections import *
def ComputeAnagrams(string):
d = defaultdict(list)
for word in string:
key = ''.join(sorted(word))
d[key].append(word)
return d
def main():
for string in sys.stdin:
stringList = string.split()
if len(stringList) == 0:
break
d = ComputeAnagrams(stringList)
for key,anagrams in d.items():
if len(anagrams) >=1:
print(sorted(anagrams))
print ('')
main()
注意:运行此程序的机器从标准输入/键盘读取输入,并将输出打印到控制台(标准输出)。我认为问题在于-
print(sorted(''.join(anagrams)))
在将列表连接到字符串之后,您使用的是sorted
,在这种情况下,sorted返回按排序顺序排列的字符列表(我猜这就是您当前得到的输出)
如果您希望元素按排序顺序排列,则应在anagrams
列表中使用sorted,而不是连接后的字符串。范例-
print(', '.join(sorted(anagrams)))
我还使用,'
连接字符串,以便使用,
作为分隔符,否则输出将是所有字符串,中间没有空格,如果需要,可以使用任何其他分隔符
演示-
以上更改后-
输入-
eat tea tan ate nat bat
输出-
bat
ate, eat, tea
nat, tan
使用
key=''.join(sorted(word))
你想要实现什么?要使词典中的词条井然有序,请使用“谢谢”!你知道如何删除逗号吗?就像我在回答中说的,你可以使用不同的分隔符,如果你想的话,甚至可以使用空格。尝试打印(''.join(已排序(字谜))