Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从字典中输出值而不将其打印为列表?_Python_Dictionary - Fatal编程技术网

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(已排序(字谜))