Python 从附加列表创建元组列表

Python 从附加列表创建元组列表,python,Python,我想将4个附加项从它们的列表中分离到一个新的元组列表中 loan_amount = [1250.0, 500.0, 1450.0, 200.0, 700.0, 100.0, 250.0, 225.0, 1200.0, 150.0, 600.0, 300.0, 700.0, 125.0, 650.0, 175.0, 1800.0, 1525.0, 575.0, 700.0, 1450.0, 400.0, 200.0, 1000.0, 350.0] country_name = ['Azerbaij

我想将4个附加项从它们的列表中分离到一个新的元组列表中

loan_amount = [1250.0, 500.0, 1450.0, 200.0, 700.0, 100.0, 250.0, 225.0, 1200.0, 150.0, 600.0, 300.0, 700.0, 125.0, 650.0, 175.0, 1800.0, 1525.0, 575.0, 700.0, 1450.0, 400.0, 200.0, 1000.0, 350.0]
country_name = ['Azerbaijan', 'El Salvador', 'Bolivia', 'Paraguay', 'El Salvador', 'Philippines', 'Philippines', 'Nicaragua', 'Guatemala', 'Philippines', 'Paraguay', 'Philippines', 'Bolivia', 'Philippines', 'Philippines', 'Madagascar', 'Georgia', 'Uganda', 'Kenya', 'Tajikistan', 'Jordan', 'Kenya', 'Philippines', 'Ecuador', 'Kenya']
    time_to_raise = [193075.0, 1157108.0, 1552939.0, 244945.0, 238797.0, 1248909.0, 773599.0, 116181.0, 2288095.0, 51668.0, 26717.0, 48030.0, 1839190.0, 71117.0, 580401.0, 800427.0, 1156218.0, 1166045.0, 2924705.0, 470622.0, 24078.0, 260044.0, 445938.0, 201408.0, 2370450.0]
    num_lenders_total = [38, 18, 51, 3, 21, 1, 10, 8, 42, 1, 18, 6, 28, 5, 16, 7, 54, 1, 18, 22, 36, 12, 8, 24, 8]

    first = []
    i = 0
    for i in range(len(loan_amount)):
        first.append(country_name[i])
        first.append(loan_amount[i])
        first.append(time_to_raise[i])
        first.append(num_lenders_total[i])
        i += 1

    print(first)
输出:

['Azerbaijan', 1250.0, 193075.0, 38, 'El Salvador', 500.0, 1157108.0, 18, 'Bolivia', 1450.0, 1552939.0, 51, 'Paraguay', 200.0, 244945.0, 3, 'El Salvador', 700.0, 238797.0, 21, 'Philippines', 100.0, 1248909.0, 1, 'Philippines', 250.0, 773599.0, 10, 'Nicaragua', 225.0, 116181.0, 8, 'Guatemala', 1200.0, 2288095.0, 42, 'Philippines', 150.0, 51668.0, 1, 'Paraguay', 600.0, 26717.0, 18, 'Philippines', 300.0, 48030.0, 6, 'Bolivia', 700.0, 1839190.0, 28, 'Philippines', 125.0, 71117.0, 5, 'Philippines', 650.0, 580401.0, 16, 'Madagascar', 175.0, 800427.0, 7, 'Georgia', 1800.0, 1156218.0, 54, 'Uganda', 1525.0, 1166045.0, 1, 'Kenya', 575.0, 2924705.0, 18, 'Tajikistan', 700.0, 470622.0, 22, 'Jordan', 1450.0, 24078.0, 36, 'Kenya', 400.0, 260044.0, 12, 'Philippines', 200.0, 445938.0, 8, 'Ecuador', 1000.0, 201408.0, 24, 'Kenya', 350.0, 2370450.0, 8]
[('Azerbaijan', 1250.0, 193075.0, 38),
 ('El Salvador', 500.0, 1157108.0, 18),
 ('Bolivia', 1450.0, 1552939.0, 51),
...]
['Azerbaijan',
 1250.0,
 193075.0,
 38,
 'El Salvador',
 500.0,
 1157108.0,
 18,
....]

使用
tuple
zip
的一种方法

loan_amount = [1250.0, 500.0, 1450.0, 200.0, 700.0, 100.0, 250.0, 225.0, 1200.0, 150.0, 600.0, 300.0, 700.0, 125.0, 650.0, 175.0, 1800.0, 1525.0, 575.0, 700.0, 1450.0, 400.0, 200.0, 1000.0, 350.0]
country_name = ['Azerbaijan', 'El Salvador', 'Bolivia', 'Paraguay', 'El Salvador', 'Philippines', 'Philippines', 'Nicaragua', 'Guatemala', 'Philippines', 'Paraguay', 'Philippines', 'Bolivia', 'Philippines', 'Philippines', 'Madagascar', 'Georgia', 'Uganda', 'Kenya', 'Tajikistan', 'Jordan', 'Kenya', 'Philippines', 'Ecuador', 'Kenya']
time_to_raise = [193075.0, 1157108.0, 1552939.0, 244945.0, 238797.0, 1248909.0, 773599.0, 116181.0, 2288095.0, 51668.0, 26717.0, 48030.0, 1839190.0, 71117.0, 580401.0, 800427.0, 1156218.0, 1166045.0, 2924705.0, 470622.0, 24078.0, 260044.0, 445938.0, 201408.0, 2370450.0]
num_lenders_total = [38, 18, 51, 3, 21, 1, 10, 8, 42, 1, 18, 6, 28, 5, 16, 7, 54, 1, 18, 22, 36, 12, 8, 24, 8]

def merge(list1, list2, list3, list4): 

    merged_list = tuple(zip(list1, list2, list3, list4))  
    return merged_list 

print(merge(country_name, loan_amount, time_to_raise, num_lenders_total)) 

工作演示:

一种使用
元组和
邮政编码的方法

loan_amount = [1250.0, 500.0, 1450.0, 200.0, 700.0, 100.0, 250.0, 225.0, 1200.0, 150.0, 600.0, 300.0, 700.0, 125.0, 650.0, 175.0, 1800.0, 1525.0, 575.0, 700.0, 1450.0, 400.0, 200.0, 1000.0, 350.0]
country_name = ['Azerbaijan', 'El Salvador', 'Bolivia', 'Paraguay', 'El Salvador', 'Philippines', 'Philippines', 'Nicaragua', 'Guatemala', 'Philippines', 'Paraguay', 'Philippines', 'Bolivia', 'Philippines', 'Philippines', 'Madagascar', 'Georgia', 'Uganda', 'Kenya', 'Tajikistan', 'Jordan', 'Kenya', 'Philippines', 'Ecuador', 'Kenya']
time_to_raise = [193075.0, 1157108.0, 1552939.0, 244945.0, 238797.0, 1248909.0, 773599.0, 116181.0, 2288095.0, 51668.0, 26717.0, 48030.0, 1839190.0, 71117.0, 580401.0, 800427.0, 1156218.0, 1166045.0, 2924705.0, 470622.0, 24078.0, 260044.0, 445938.0, 201408.0, 2370450.0]
num_lenders_total = [38, 18, 51, 3, 21, 1, 10, 8, 42, 1, 18, 6, 28, 5, 16, 7, 54, 1, 18, 22, 36, 12, 8, 24, 8]

def merge(list1, list2, list3, list4): 

    merged_list = tuple(zip(list1, list2, list3, list4))  
    return merged_list 

print(merge(country_name, loan_amount, time_to_raise, num_lenders_total)) 

工作演示:

如果您想从初始列表中获得元组列表
国家/地区名称
筹集时间
贷方总数
,您可以使用:

list(zip(country_name, loan_amount, time_to_raise , num_lenders_total))
list(chain.from_iterable(zip(country_name, loan_amount, time_to_raise, num_lenders_total)))
输出:

['Azerbaijan', 1250.0, 193075.0, 38, 'El Salvador', 500.0, 1157108.0, 18, 'Bolivia', 1450.0, 1552939.0, 51, 'Paraguay', 200.0, 244945.0, 3, 'El Salvador', 700.0, 238797.0, 21, 'Philippines', 100.0, 1248909.0, 1, 'Philippines', 250.0, 773599.0, 10, 'Nicaragua', 225.0, 116181.0, 8, 'Guatemala', 1200.0, 2288095.0, 42, 'Philippines', 150.0, 51668.0, 1, 'Paraguay', 600.0, 26717.0, 18, 'Philippines', 300.0, 48030.0, 6, 'Bolivia', 700.0, 1839190.0, 28, 'Philippines', 125.0, 71117.0, 5, 'Philippines', 650.0, 580401.0, 16, 'Madagascar', 175.0, 800427.0, 7, 'Georgia', 1800.0, 1156218.0, 54, 'Uganda', 1525.0, 1166045.0, 1, 'Kenya', 575.0, 2924705.0, 18, 'Tajikistan', 700.0, 470622.0, 22, 'Jordan', 1450.0, 24078.0, 36, 'Kenya', 400.0, 260044.0, 12, 'Philippines', 200.0, 445938.0, 8, 'Ecuador', 1000.0, 201408.0, 24, 'Kenya', 350.0, 2370450.0, 8]
[('Azerbaijan', 1250.0, 193075.0, 38),
 ('El Salvador', 500.0, 1157108.0, 18),
 ('Bolivia', 1450.0, 1552939.0, 51),
...]
['Azerbaijan',
 1250.0,
 193075.0,
 38,
 'El Salvador',
 500.0,
 1157108.0,
 18,
....]
要获得预期的输出,您可以使用内置函数
zip
itertools.chain

from itertools import chain

list(chain(*zip(country_name, loan_amount, time_to_raise , num_lenders_total)))
输出:

['Azerbaijan', 1250.0, 193075.0, 38, 'El Salvador', 500.0, 1157108.0, 18, 'Bolivia', 1450.0, 1552939.0, 51, 'Paraguay', 200.0, 244945.0, 3, 'El Salvador', 700.0, 238797.0, 21, 'Philippines', 100.0, 1248909.0, 1, 'Philippines', 250.0, 773599.0, 10, 'Nicaragua', 225.0, 116181.0, 8, 'Guatemala', 1200.0, 2288095.0, 42, 'Philippines', 150.0, 51668.0, 1, 'Paraguay', 600.0, 26717.0, 18, 'Philippines', 300.0, 48030.0, 6, 'Bolivia', 700.0, 1839190.0, 28, 'Philippines', 125.0, 71117.0, 5, 'Philippines', 650.0, 580401.0, 16, 'Madagascar', 175.0, 800427.0, 7, 'Georgia', 1800.0, 1156218.0, 54, 'Uganda', 1525.0, 1166045.0, 1, 'Kenya', 575.0, 2924705.0, 18, 'Tajikistan', 700.0, 470622.0, 22, 'Jordan', 1450.0, 24078.0, 36, 'Kenya', 400.0, 260044.0, 12, 'Philippines', 200.0, 445938.0, 8, 'Ecuador', 1000.0, 201408.0, 24, 'Kenya', 350.0, 2370450.0, 8]
[('Azerbaijan', 1250.0, 193075.0, 38),
 ('El Salvador', 500.0, 1157108.0, 18),
 ('Bolivia', 1450.0, 1552939.0, 51),
...]
['Azerbaijan',
 1250.0,
 193075.0,
 38,
 'El Salvador',
 500.0,
 1157108.0,
 18,
....]
或者,按照@benvc的建议,您可以使用:

list(zip(country_name, loan_amount, time_to_raise , num_lenders_total))
list(chain.from_iterable(zip(country_name, loan_amount, time_to_raise, num_lenders_total)))

如果您想从初始列表中获得元组列表
country\u name
time\u-to\u-raise
num\u-total
,您可以使用:

list(zip(country_name, loan_amount, time_to_raise , num_lenders_total))
list(chain.from_iterable(zip(country_name, loan_amount, time_to_raise, num_lenders_total)))
输出:

['Azerbaijan', 1250.0, 193075.0, 38, 'El Salvador', 500.0, 1157108.0, 18, 'Bolivia', 1450.0, 1552939.0, 51, 'Paraguay', 200.0, 244945.0, 3, 'El Salvador', 700.0, 238797.0, 21, 'Philippines', 100.0, 1248909.0, 1, 'Philippines', 250.0, 773599.0, 10, 'Nicaragua', 225.0, 116181.0, 8, 'Guatemala', 1200.0, 2288095.0, 42, 'Philippines', 150.0, 51668.0, 1, 'Paraguay', 600.0, 26717.0, 18, 'Philippines', 300.0, 48030.0, 6, 'Bolivia', 700.0, 1839190.0, 28, 'Philippines', 125.0, 71117.0, 5, 'Philippines', 650.0, 580401.0, 16, 'Madagascar', 175.0, 800427.0, 7, 'Georgia', 1800.0, 1156218.0, 54, 'Uganda', 1525.0, 1166045.0, 1, 'Kenya', 575.0, 2924705.0, 18, 'Tajikistan', 700.0, 470622.0, 22, 'Jordan', 1450.0, 24078.0, 36, 'Kenya', 400.0, 260044.0, 12, 'Philippines', 200.0, 445938.0, 8, 'Ecuador', 1000.0, 201408.0, 24, 'Kenya', 350.0, 2370450.0, 8]
[('Azerbaijan', 1250.0, 193075.0, 38),
 ('El Salvador', 500.0, 1157108.0, 18),
 ('Bolivia', 1450.0, 1552939.0, 51),
...]
['Azerbaijan',
 1250.0,
 193075.0,
 38,
 'El Salvador',
 500.0,
 1157108.0,
 18,
....]
要获得预期的输出,您可以使用内置函数
zip
itertools.chain

from itertools import chain

list(chain(*zip(country_name, loan_amount, time_to_raise , num_lenders_total)))
输出:

['Azerbaijan', 1250.0, 193075.0, 38, 'El Salvador', 500.0, 1157108.0, 18, 'Bolivia', 1450.0, 1552939.0, 51, 'Paraguay', 200.0, 244945.0, 3, 'El Salvador', 700.0, 238797.0, 21, 'Philippines', 100.0, 1248909.0, 1, 'Philippines', 250.0, 773599.0, 10, 'Nicaragua', 225.0, 116181.0, 8, 'Guatemala', 1200.0, 2288095.0, 42, 'Philippines', 150.0, 51668.0, 1, 'Paraguay', 600.0, 26717.0, 18, 'Philippines', 300.0, 48030.0, 6, 'Bolivia', 700.0, 1839190.0, 28, 'Philippines', 125.0, 71117.0, 5, 'Philippines', 650.0, 580401.0, 16, 'Madagascar', 175.0, 800427.0, 7, 'Georgia', 1800.0, 1156218.0, 54, 'Uganda', 1525.0, 1166045.0, 1, 'Kenya', 575.0, 2924705.0, 18, 'Tajikistan', 700.0, 470622.0, 22, 'Jordan', 1450.0, 24078.0, 36, 'Kenya', 400.0, 260044.0, 12, 'Philippines', 200.0, 445938.0, 8, 'Ecuador', 1000.0, 201408.0, 24, 'Kenya', 350.0, 2370450.0, 8]
[('Azerbaijan', 1250.0, 193075.0, 38),
 ('El Salvador', 500.0, 1157108.0, 18),
 ('Bolivia', 1450.0, 1552939.0, 51),
...]
['Azerbaijan',
 1250.0,
 193075.0,
 38,
 'El Salvador',
 500.0,
 1157108.0,
 18,
....]
或者,按照@benvc的建议,您可以使用:

list(zip(country_name, loan_amount, time_to_raise , num_lenders_total))
list(chain.from_iterable(zip(country_name, loan_amount, time_to_raise, num_lenders_total)))

如果需要列表中的元组列表:

loan_amount = [1250.0, 500.0, 1450.0, 200.0, 700.0, 100.0, 250.0, 225.0, 1200.0, 150.0, 600.0, 300.0, 700.0, 125.0, 650.0, 175.0, 1800.0, 1525.0, 575.0, 700.0, 1450.0, 400.0, 200.0, 1000.0, 350.0]
country_name = ['Azerbaijan', 'El Salvador', 'Bolivia', 'Paraguay', 'El Salvador', 'Philippines', 'Philippines', 'Nicaragua', 'Guatemala', 'Philippines', 'Paraguay', 'Philippines', 'Bolivia', 'Philippines', 'Philippines', 'Madagascar', 'Georgia', 'Uganda', 'Kenya', 'Tajikistan', 'Jordan', 'Kenya', 'Philippines', 'Ecuador', 'Kenya']
time_to_raise = [193075.0, 1157108.0, 1552939.0, 244945.0, 238797.0, 1248909.0, 773599.0, 116181.0, 2288095.0, 51668.0, 26717.0, 48030.0, 1839190.0, 71117.0, 580401.0, 800427.0, 1156218.0, 1166045.0, 2924705.0, 470622.0, 24078.0, 260044.0, 445938.0, 201408.0, 2370450.0]
num_lenders_total = [38, 18, 51, 3, 21, 1, 10, 8, 42, 1, 18, 6, 28, 5, 16, 7, 54, 1, 18, 22, 36, 12, 8, 24, 8]

listOfTuple= []
for i in range(len(loan_amount)):
    listOfTuple.append((loan_amount[i],country_name[i], time_to_raise[i], num_lenders_total[i]))
print(listOfTuple)

如果需要列表中的元组列表:

loan_amount = [1250.0, 500.0, 1450.0, 200.0, 700.0, 100.0, 250.0, 225.0, 1200.0, 150.0, 600.0, 300.0, 700.0, 125.0, 650.0, 175.0, 1800.0, 1525.0, 575.0, 700.0, 1450.0, 400.0, 200.0, 1000.0, 350.0]
country_name = ['Azerbaijan', 'El Salvador', 'Bolivia', 'Paraguay', 'El Salvador', 'Philippines', 'Philippines', 'Nicaragua', 'Guatemala', 'Philippines', 'Paraguay', 'Philippines', 'Bolivia', 'Philippines', 'Philippines', 'Madagascar', 'Georgia', 'Uganda', 'Kenya', 'Tajikistan', 'Jordan', 'Kenya', 'Philippines', 'Ecuador', 'Kenya']
time_to_raise = [193075.0, 1157108.0, 1552939.0, 244945.0, 238797.0, 1248909.0, 773599.0, 116181.0, 2288095.0, 51668.0, 26717.0, 48030.0, 1839190.0, 71117.0, 580401.0, 800427.0, 1156218.0, 1166045.0, 2924705.0, 470622.0, 24078.0, 260044.0, 445938.0, 201408.0, 2370450.0]
num_lenders_total = [38, 18, 51, 3, 21, 1, 10, 8, 42, 1, 18, 6, 28, 5, 16, 7, 54, 1, 18, 22, 36, 12, 8, 24, 8]

listOfTuple= []
for i in range(len(loan_amount)):
    listOfTuple.append((loan_amount[i],country_name[i], time_to_raise[i], num_lenders_total[i]))
print(listOfTuple)

输出是什么?代码中没有名为loan\u amount的列表看起来你只是想要
zip
这里
列表(zip(国家名称、筹集时间、贷方总数))
为什么在
循环中增加
i
?这是否回答了你的问题?输出是什么?代码中没有名为loan\u amount的列表看起来你只是想要
zip
这里
列表(zip(国家名称、筹集时间、贷方总数))
为什么在
循环中增加
i
?这是否回答了你的问题?您还可以使用
chain。from\u iterable
列表(chain.from\u iterable(zip(国家名称、贷款金额、筹集时间、贷款人总数))
您也可以使用
chain。from\u iterable
列表(chain.from\u iterable(国家名称、贷款金额、筹集时间、贷款人总数))