Hướng dẫn how to replace a list with another list in python - cách thay thế một danh sách bằng một danh sách khác trong python

Tôi đang tạo một trò chơi Hangman và tôi muốn có thể thay thế danh sách các từ gốc bằng một danh sách các từ mới được người dùng gõ. Vào lúc mã của tôi là đây:

gamewords[:] = newgamewords[:]

Nhưng điều này dường như không hoạt động ...

Danh sách ban đầu là:

gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']

Một từ sau đó được chọn cho danh sách một cách ngẫu nhiên

 word=gamewords[random.randint(0,len(gamewords)-1)]

Tôi muốn thay đổi nó để từ được chọn từ danh sách mới, làm thế nào để làm điều này?

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0509
 word=gamewords[random.randint(0,len(gamewords)-1)]
5

  • ['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
    8
    ['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
    9
    ['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
    0=__
    gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
    
    9
    ['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
    4
  • ['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
    5
    ['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
    0509
    ['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
    9
  • Phương pháp 3: Sử dụng trong khi vòng lặp
  • Sử dụng chức năng Lambda
  • Sử dụng danh sách cắt

Phương pháp 1: Sử dụng lập chỉ mục danh sách

Chúng ta có thể truy cập các mục của danh sách bằng cách sử dụng lập chỉ mục. Đây là phương pháp đơn giản nhất và dễ nhất để thay thế các giá trị trong danh sách trong Python. Nếu chúng tôi muốn thay thế mục đầu tiên của danh sách, chúng tôi có thể sử dụng chỉ mục 0. Dưới đây, chỉ mục là một chỉ mục của mục mà chúng tôi muốn thay thế và new_value là một giá trị sẽ thay thế giá trị cũ trong danh sách.

Cú pháp: & nbsp; l [index] = new_value l[index]=new_value

Code:

Python3

l =

gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
0
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
1
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
2
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
3__

 word=gamewords[random.randint(0,len(gamewords)-1)]
1
 word=gamewords[random.randint(0,len(gamewords)-1)]
2
 word=gamewords[random.randint(0,len(gamewords)-1)]
3=
 word=gamewords[random.randint(0,len(gamewords)-1)]
5

 word=gamewords[random.randint(0,len(gamewords)-1)]
6
 word=gamewords[random.randint(0,len(gamewords)-1)]
7

Output:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']

Phương pháp 2: Sử dụng cho vòng lặp

Chúng ta có thể sử dụng cho vòng lặp để lặp qua danh sách và thay thế các giá trị trong danh sách. Giả sử chúng ta muốn thay thế ‘Hardik, và‘ Pant, từ danh sách bằng ‘Shardul, và‘ Ishan. Trước tiên chúng tôi tìm thấy các giá trị trong danh sách bằng cách sử dụng vòng lặp và nếu điều kiện và sau đó thay thế nó bằng giá trị mới. & NBSP;

Python3

l =

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
0
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
1
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
4
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
3__

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
1
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
2
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
3
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
6
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
7

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0=__
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
1
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0509
 word=gamewords[random.randint(0,len(gamewords)-1)]
5

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0=__
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
9
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0509
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9

 word=gamewords[random.randint(0,len(gamewords)-1)]
6
 word=gamewords[random.randint(0,len(gamewords)-1)]
7

Output:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']

Phương pháp 3: Sử dụng trong khi vòng lặp

Chúng ta cũng có thể sử dụng một vòng lặp thời gian để thay thế các giá trị trong danh sách. Trong khi vòng lặp làm công việc tương tự như đối với Loop. Trong vòng lặp trước tiên, chúng tôi xác định một biến có giá trị 0 và lặp qua danh sách. Nếu giá trị khớp với giá trị mà chúng tôi muốn thay thế thì chúng tôi thay thế nó bằng giá trị mới.

Python3

l =

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
0
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
1
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
4
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
3__

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
1
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
2
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
3
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
6
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
7

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0=__
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
1
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0=__
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
1
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0509
 word=gamewords[random.randint(0,len(gamewords)-1)]
5

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0=__
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
9
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0509
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9

Phương pháp 3: Sử dụng trong khi vòng lặp

 word=gamewords[random.randint(0,len(gamewords)-1)]
6
 word=gamewords[random.randint(0,len(gamewords)-1)]
7

Output:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']

Chúng ta cũng có thể sử dụng một vòng lặp thời gian để thay thế các giá trị trong danh sách. Trong khi vòng lặp làm công việc tương tự như đối với Loop. Trong vòng lặp trước tiên, chúng tôi xác định một biến có giá trị 0 và lặp qua danh sách. Nếu giá trị khớp với giá trị mà chúng tôi muốn thay thế thì chúng tôi thay thế nó bằng giá trị mới.

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
2=
 word=gamewords[random.randint(0,len(gamewords)-1)]
2

l 8 l 9

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
6=1l=list(map(lambda x: x.replace(‘old_value’,’new_value’),l))

Python3

l =

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
0
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
1
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
4
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
3__

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
1
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
2
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
3
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
6
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
7

 word=gamewords[random.randint(0,len(gamewords)-1)]
6
 word=gamewords[random.randint(0,len(gamewords)-1)]
7

Output:

['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']8['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']9 ['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']0=__ gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet'] 1['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']4

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0509
 word=gamewords[random.randint(0,len(gamewords)-1)]
5

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0=__
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
9
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4
l=l[:index]+[‘new_value’]+l[index+1:]

Python3

l =

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
0
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
1
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
4
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
3__

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
1
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
2
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
3
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
6
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
7

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0=__
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
1
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4

 word=gamewords[random.randint(0,len(gamewords)-1)]
6
 word=gamewords[random.randint(0,len(gamewords)-1)]
7

Output:

['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']