Python 如何合并两个长度不等的列表?

Python 如何合并两个长度不等的列表?,python,Python,我有两个列表,一个是城市列表,另一个是州列表 以下是我的城市列表: print(combined_city_list) [['Los Angeles', 'Long Beach', 'Anaheim'], ['Dallas', 'Fort Worth'], ['Miami', 'Fort Lauderdale'], ['Minneapolis', 'St Paul'], ['Louisville', 'Jefferson County'], ['North Port', 'Sarasota',

我有两个列表,一个是城市列表,另一个是州列表

以下是我的城市列表:

print(combined_city_list)
[['Los Angeles', 'Long Beach', 'Anaheim'], ['Dallas', 'Fort Worth'], ['Miami', 'Fort Lauderdale'], ['Minneapolis', 'St Paul'], ['Louisville', 'Jefferson County'], ['North Port', 'Sarasota', 'Bradenton'], ['Winston', 'Salem'], ['Santa Maria', 'Santa Barbara'], ['Crestview', 'Fort Walton Beach', 'Destin'], ['Macon', 'Bibb County'], ['Champaign', 'Urbana'], ['Lafayette', 'West Lafayette'], ['California', 'Lexington Park'], ['Pinehurst', 'Southern Pines'], ['Hermiston', 'Pendleton'], ['Wisconsin Rapids', 'Marshfield'], ['Arkansas City', 'Winfield']]
print(combined_state_list)
[[' CA'], [' TX'], [' FL'], [' MN'], [' KY'], [' FL'], [' NC'], [' CA'], [' FL'], [' GA'], [' IL'], [' IN'], [' MD'], [' NC'], [' OR'], [' WI'], [' KS']]
以下是我的状态列表:

print(combined_city_list)
[['Los Angeles', 'Long Beach', 'Anaheim'], ['Dallas', 'Fort Worth'], ['Miami', 'Fort Lauderdale'], ['Minneapolis', 'St Paul'], ['Louisville', 'Jefferson County'], ['North Port', 'Sarasota', 'Bradenton'], ['Winston', 'Salem'], ['Santa Maria', 'Santa Barbara'], ['Crestview', 'Fort Walton Beach', 'Destin'], ['Macon', 'Bibb County'], ['Champaign', 'Urbana'], ['Lafayette', 'West Lafayette'], ['California', 'Lexington Park'], ['Pinehurst', 'Southern Pines'], ['Hermiston', 'Pendleton'], ['Wisconsin Rapids', 'Marshfield'], ['Arkansas City', 'Winfield']]
print(combined_state_list)
[[' CA'], [' TX'], [' FL'], [' MN'], [' KY'], [' FL'], [' NC'], [' CA'], [' FL'], [' GA'], [' IL'], [' IN'], [' MD'], [' NC'], [' OR'], [' WI'], [' KS']]
这就是我尝试过的:

combined_state_short = [i[0] for i in combined_state_list]

combined_city_state = []
for c, s in zip (combined_city_list, combined_state_list):
    for i in c:
        combined_city_state = str(i) + ',' + str(s)

print(combined_city_state)
我将此作为输出:

Winfield,[' KS']
我想要这样的东西:

['Los Angeles, CA', 'Long Beach, CA' ...]
就你而言

newlist = [z + ',' + y[0]  for x , y in zip(combined_city_list,combined_state_list) for z in x]
就你而言

newlist = [z + ',' + y[0]  for x , y in zip(combined_city_list,combined_state_list) for z in x]
这将有助于:

[city + ',' + state for (cities, (state, *_)) in zip(combined_city_list, combined_state_list) for city in cities]
这将有助于:

[city + ',' + state for (cities, (state, *_)) in zip(combined_city_list, combined_state_list) for city in cities]

对于这种形式的初学者可能更清楚:

new_list = []
for cities, state in zip(combined_city_list, combined_state_list):
    for city in cities:
        new_list.append(city + ',' + state[0])
new_list

对于这种形式的初学者可能更清楚:

new_list = []
for cities, state in zip(combined_city_list, combined_state_list):
    for city in cities:
        new_list.append(city + ',' + state[0])
new_list

每个州仍然有子列表。我认为需要一个简单的列表。@JosephSible如果是这样的话,只需将第二个for循环移到末尾:-)谢谢你们!我刚刚意识到我已经覆盖了我的组合城市州列表,只需要添加一个中间变量来追加。@Lee无论如何,问题得到了解决:-)happy Coding每个州都有子列表。我认为需要一个简单的列表。@JosephSible如果是这样的话,只需将第二个for循环移到末尾:-)谢谢你们!我刚刚意识到我已经覆盖了我的组合城市州列表,只需要添加一个中间变量来追加。@Lee不管怎样,问题得到了解决:-)快乐编码