0

だから私は2つの数字のリストを取ろうとしています; 最初のリストをスライスし、スライスされたリストの順序を逆にしてから、それを 2 番目のリストに追加し、新しいリストを出力します。実行してすべての入力を入れると、空のリストが表示されます。私がどこで間違ったのかを見つけるのを手伝ってもらえますか?

 def transform(list1,list2,r1,r2):
        rev_list=[]
        list1=''
        list2=''
        l1=list1.split(',')
        l2=list2.split(',')
        slice_l1=l1[r1:r2]
        for i in reversed(slice_l1):
            rev_list.extend(i)
        new_list=l2+rev_list
        return new_list

    def main():
        user_input_l1=input("Please enter a list of numbers separated by a   comma (,): ")
        user_input_l2=input("Please enter a second list of numbers separated by a comma (,): ")
        user_input_r1=int(input("Please enter the beginning index for slice: "))
        user_input_r2=int(input("Please enter the ending index for slice: "))
        new_list=transform(user_input_l1,user_input_l2,user_input_r1,user_input_r2)
        print("Your new list is",new_list)
        print(type(new_list))

if __name__=="__main__":
    main()

よろしくお願いします。

4

2 に答える 2

0

だから私は自分の目標を達成する方法を考え出しました:

def transform(list1,list2,r1,r2): 
    rev_list=[] 
    l1=list(list1) 
    l2=list(list2) 
    slice_l1=l1[r1:r2] 
    rev_list.extend(reversed(slice_l1))
    l2.extend(rev_list) # Extends l2 by rev_list
    return l2

ユーザー入力で eval() メソッドを使用して、ユーザーの入力から文字列をタプルに変換し、そのタプルで list() メソッドを使用してリストに変換しました。

助けてくれたsnookieordieに再び感謝します。

于 2015-12-11T14:48:41.610 に答える
0

いくつかのこと:

list1 = ''入力を空の文字列に変換しlist2 = ''ます''。意図的ではなかったと思いますので、削除してもよろしいですか?

.split()次に、数字を入力すると、メソッドを持たないタプルの形式になります。これらの行を変更して、取得l1l2てリスト形式にしました。

また、リストに数字を 1 つだけ追加する場合は、.append()代わりに使用します。.extend()または、 を使用する場合.extend()は、リスト全体を引数として指定します。

これを試して:

def transform(list1,list2,r1,r2):
    rev_list=[]
    l1= [item for item in list1]
    l2= [item for item in list2]
    slice_l1=l1[r1:r2]
    rev_list.extend(reversed(slice_l1))
    new_list=l2+rev_list
    return new_list
于 2015-12-11T04:44:55.147 に答える