私信  •  关注

Rafael Marques

Rafael Marques 最近创建的主题
Rafael Marques 最近回复了
5 年前
回复了 Rafael Marques 创建的主题 » Python:创建一个字典,其中键有多个值

你可以试试这个:

L = [('a','111'),('b','222'),('a','333'),('b','444')]
my_dict = {}

for item in L:
    if item[0] not in my_dict:
        my_dict[item[0]] = []

    my_dict[item[0]].append(item[1])

print(my_dict)

输出:

python your_script.py
{'a': ['111', '333'], 'b': ['222', '444']}

正如@chepner所指出的,您可以使用 defaultdict 到。

defaultdict 您不需要检查您的 dict .

L = [('a','111'),('b','222'),('a','333'),('b','444')]
my_dict = defaultdict(list)

for item in L:
    my_dict[item[0]].append(item[1])

print(my_dict)

以及输出:

defaultdict(<class 'list'>, {'a': ['111', '333'], 'b': ['222', '444']})

迪克特 ,您只需从中创建一个新的dict:

print(dict(my_dict))

输出为:

{'a': ['111', '333'], 'b': ['222', '444']}
5 年前
回复了 Rafael Marques 创建的主题 » 将字符串转换为数组中的python

我想最简单的方法是:

my_list = [["", "", "", ""], ["", "2", "", ""], ["", "", "", ""], ["2", "", "", ""]]
my_new_list = []

for a_list in my_list:
    my_new_list.extend(a_list)

for item in my_new_list:
    print(item)

输出为:

2






2

您可以迭代列表并使用 append 而不是使用 extend :

my_list = [["", "", "", ""], ["", "2", "", ""], ["", "", "", ""], ["2", "", "", ""]]
my_new_list = []

for a_list in my_list:
    for item in a_list:
        my_new_list.append(item)

for item in my_new_list:
    print(item)

正如扎克提到的,你可以看到更多的例子 here (How to make a flat list out of list of lists?)

5 年前
回复了 Rafael Marques 创建的主题 » 有人能帮我解决简单的列表python问题吗?

如果要检查字符是否为数字,可以使用 isdigit 功能

my_list = ["a3", "b3", "aa"]

def erase(lista):
    only_chars = []
    for word in lista:
        result = ''.join([w for w in word if not w.isdigit()])
        if result:
            only_chars.append(result)

    return only_chars


result = erase(my_list)
print(result)

它将打印:

['a', 'b', 'aa']

数字 结合 any :

my_list = ["a3", "b3", "aa"]

def erase(lista):
    only_chars = []
    for word in lista:
        if not any(w.isdigit() for w in word):
            only_chars.append(word)

    return only_chars


result = erase(my_list)
print(result)

现在,结果是:

['aa']