Python:如何删除字典中的方括号?

时间:2019-05-22 08:19:10

标签: python list dictionary for-loop pop

我想在字典中获取值并将其附加到列表中,但是我不知道如何删除方括号,因此它会在另一个[['display', 'exhibit', 'convey', 'communicate', 'manifest', 'disclose']]中引起方括号。有什么方法可以用来消除这些括号?

word_dict = {'show': ['display', 'exhibit', 'convey', 'communicate', 'manifest', 'disclose']}


def main():
    get_list = remove_word(word_dict)
    print(get_list)

def remove_word(word_dict):

    synonyms = word_dict.values()
    new_list = []
    for i in synonyms:
        new_list.append(i)

    return new_list

main()

6 个答案:

答案 0 :(得分:2)

您要将值(列表)添加到新列表中,从而创建列表列表。

您需要使用extend而不是append来使列表变平坦

new_list = []
for i in synonyms:
    new_list.extend(i)

答案 1 :(得分:1)

您可以像这样修改def

无需创建列表,因为dict.values本身就是list

word_dict中的值包含list,而dict.values本身给出list。所以它给出了列表清单。

您可以使用索引0

访问单个列表
def remove_word(word_dict):
    synonyms = word_dict.values()
    return list(synonyms)[0]

答案 2 :(得分:1)

word_dict = {'show': [['display', 'exhibit', 'convey', 'communicate', 'manifest', 'disclose']]}
def main():
    get_list = remove_word(word_dict)
    print(get_list)

def remove_word(word_dict):
    for i in word_dict:
        word_dict.update({i:[ j for k in word_dict[i] for j in k]})
    return word_dict
main()

输出

{'show': ['display', 'exhibit', 'convey', 'communicate', 'manifest', 'disclose']}

答案 3 :(得分:1)

只需将值提取为列表即可,例如:

word_dict = {'show': ['display', 'exhibit', 'convey', 'communicate', 'manifest', 'disclose']}


def main():
   get_list = remove_word(word_dict)
   print(get_list)

def remove_word(word_dict):

   # synonyms = word_dict.values()

   return word_dict['show']

   # new_list = []
   # for i in synonyms:
   #     new_list.append(i)

   # return new_list

main()

输出:

['display', 'exhibit', 'convey', 'communicate', 'manifest', 'disclose']

答案 4 :(得分:1)

尝试此操作将始终返回列表:

def remove_word(word_dict):
    synonyms = word_dict.values()
    new_list = []
    for i in synonyms:
        if isinstance(i,list):
            new_list.extend(i)
        else:
            new_list.append(i) 

    return new_list

extendappend具有不同的两种工作行为

https://docs.python.org/3/tutorial/datastructures.html

答案 5 :(得分:1)

您可以再添加一个for循环以将单词添加到列表中,而不是将列表添加到列表中

def remove_word(word_dict):
    synonyms = word_dict.values()
    new_list = []
    for i in synonyms:
        for word in i:
            new_list.append(word)

    return new_list