如何格式化包含两个元素的列表


list = [(a, 59.34), (t, 56.54), (d, 34.74), (u, 5.89)]

列表按数字的降序排列(第二个元素(我想把它们格式化如下。

a: 59.34

t: 56.54

d: 34.74

u: 5.89

details = []
for item in list:
name = item[0]
num = item[2]
details.append(f"{name}: {num:.2f}")
lst = [('a', 59.34), ('t', 56.54), ('d', 34.74), ('u', 5.89)]
details = [f"{x[0]}: {x[1]:.2f}" for x in lst]
print(*details, sep='n')

打印:

a: 59.34
t: 56.54
d: 34.74
u: 5.89

看起来您想将列表转换为字典。您可以使用字典理解来遍历列表,并将元组(key,value(转换为key:value

list1 = [('a', 59.34), ('t', 56.54), ('d', 34.74), ('u', 5.89)]
dict_from_list = {key: val for (key, val) in list1}
print(dict_from_list)
# {'a': 59.34, 't': 56.54, 'd': 34.74, 'u': 5.89}

lst=[('a',59.34(,(not',56.54(,('d',34.74(,('u',5.89(]list_comp=[f〃{i[0]}:{i[-1]}〃;对于我在lst]打印(list_comp(

(回答([阿:59.34','t:56.54','d:34.74','u:5.89']

(或(

对于lst中的j:打印(f"{j[0]}:{j[-1]}"(

(回答(a: 59.34t: 56.54d: 34.74u: 5.89

您可以使用字典理解,因为您的列表已经有成对的元素,因此您只需执行以下操作:

items = [('a', 59.34), ('t', 56.54), ('d', 34.74), ('u', 5.89)]    # try not to use the built-in method names or keywords as variable names
details = {k:v for k,v in items}    # it uses the first element of the tuple as key and seocnd as a value
print(details)

将输出:

{'a': 59.34, 't': 56.54, 'd': 34.74, 'u': 5.89}

你也可以使用一个循环:

items = [('a', 59.34), ('t', 56.54), ('d', 34.74), ('u', 5.89)]
details = {}
for i in items:
details[i[0]] = i[1]
print(details)

将导致:

{'a': 59.34, 't': 56.54, 'd': 34.74, 'u': 5.89}

最新更新