例:
入力: list1 = [1、2、3] list2 = [`a`、`b`、`c `] 出力: [(1、` a`)、(2、` b`)、(3、` c`)] 入力: list1 = [1、 2、3、4] list2 = [1、4、9] 出力: [(1、1)、(2、4)、(3、9)、(4、``)]
アプローチ#1:ナイーブ
forループを使用して両方のリストをタプルのリストに連結します。ただし、欠点は、2つのリストが同じ長さでなければならないことです。
def
merge (list1、list2):
merged_list
=
[(list1 [i]、list2 [i])
for
i
in
range
(
0
、
len
(list1))]
return
merged_list
#ドライバーコード
< / p>
l ist1
=
[
1
、
2
、
3
]
list2
=
[
`a`
、
`b`
、
`c`
]
print
(merge(list1、list2 ))
終了:
[ (1、`a`)、(2、`b`)、(3、`c`)]
アプローチ#2:素朴だがより効果的
これメソッドは上記の欠点を修正し、2つのリストの長さが等しくない場合にうまく機能します。これにより、インデックスエラーのtrycatchエラーも発生します。
def
merge(list1、list2):
merged_list
=
[]
for
i
in
range
(
max
((
len
(list1)、
len
(list2)))):
while
True
:
try
:
=
(list1 [i]、list2 [i])
IndexErrorを除く:
if
len
(list1)&gt;
len
(list2):
list2。 append(``)
tup
=
(list1 [i]、list2 [i])
elif
len
(list1)&lt;
len
(list2):
list1。 append(``)
tup
=
(list1 [i]、list2 [i])
続行
merged_list.append(tup)
ブレーク
return
merged_list
#ドライバーコード
list1
=
[
1
、
2
、
3
]
list2
=
[
、
`b`
、
`c`
]
print
(merge(list1、list2))
終了:
[(1、`a`)、(2、`b`)、(3、`c`)]
アプローチ#3 zip()<を使用する/ code>
zip()メソッドを使用して2つのリスト項目を連結し、それらをタプルに挿入します。
終了: ((1、`a`)、(2、`b`)、(3、`c`)) アプローチ#4: zip()の代わりにenumerate()を使用します。 このメソッドは、2つのforループを使用して、リストを反復処理し、 2つのリスト。 終了: [ (1、`a`)、(2、`b`)、(3、`c`)] アプローチ#5 終了: [(1、`a`)、(2、`b`)、(3、`c`)] |