Hướng dẫn how do you list multiple items in python? - làm thế nào để bạn liệt kê nhiều mục trong python?

Bạn có thể sử dụng Phương thức trình tự

names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
0 để mở rộng danh sách bằng nhiều giá trị từ bất kỳ loại nào khác, là một danh sách khác hoặc bất kỳ điều gì khác cung cấp một chuỗi các giá trị.

>>> lst = [1, 2]
>>> lst.append(3)
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

>>> lst.extend([5, 6, 7])
>>> lst.extend((8, 9, 10))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> lst.extend(range(11, 14))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

Vì vậy, bạn có thể sử dụng

names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
1 để nối một giá trị duy nhất và
names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
2 để nối nhiều giá trị.

Tổng quan

Giảng dạy: 30 phút Bài tập: 15 phút 30 min
Exercises: 15 min

Câu hỏi

  • Làm thế nào tôi có thể lưu trữ nhiều giá trị cùng nhau?

Mục tiêu

  • Giải thích danh sách là gì.

  • Tạo và chỉ mục danh sách các giá trị đơn giản.

  • Thay đổi các giá trị của các yếu tố riêng lẻ

  • Nối các giá trị vào một danh sách hiện có

  • Sắp xếp lại và cắt các yếu tố danh sách

  • Tạo và thao tác danh sách lồng nhau

Trong tập trước, chúng tôi đã phân tích một tập tin duy nhất về dữ liệu viêm thử nghiệm lâm sàng. Tuy nhiên, sau khi tìm thấy một số xu hướng đặc biệt và có khả năng đáng ngờ trong dữ liệu thử nghiệm, chúng tôi hỏi Tiến sĩ Maverick nếu họ đã thực hiện bất kỳ thử nghiệm lâm sàng nào khác. Đáng ngạc nhiên, họ nói rằng họ đã và cung cấp cho chúng tôi thêm 11 tệp CSV cho thêm 11 thử nghiệm lâm sàng mà họ đã thực hiện kể từ khi thử nghiệm ban đầu.

Mục tiêu của chúng tôi bây giờ là xử lý tất cả các dữ liệu viêm mà chúng tôi có, điều đó có nghĩa là chúng tôi vẫn còn mười một tệp nữa để đi!

Bước đầu tiên tự nhiên là thu thập tên của tất cả các tệp mà chúng tôi phải xử lý. Trong Python, một danh sách là một cách để lưu trữ nhiều giá trị với nhau. Trong tập này, chúng ta sẽ học cách lưu trữ nhiều giá trị trong danh sách cũng như cách làm việc với các danh sách.

Danh sách Python

Không giống như các mảng Numpy, các danh sách được tích hợp vào ngôn ngữ vì vậy chúng tôi không phải tải thư viện để sử dụng chúng. Chúng tôi tạo một danh sách bằng cách đặt các giá trị vào dấu ngoặc vuông và tách các giá trị bằng dấu phẩy:

odds = [1, 3, 5, 7]
print('odds are:', odds)

Chúng ta có thể truy cập các yếu tố của danh sách bằng các chỉ số - vị trí được đánh số của các yếu tố trong danh sách. Các vị trí này được đánh số bắt đầu từ 0, vì vậy phần tử đầu tiên có chỉ số 0.

print('first element:', odds[0])
print('last element:', odds[3])
print('"-1" element:', odds[-1])

first element: 1
last element: 7
"-1" element: 7

Có, chúng ta có thể sử dụng các số âm làm chỉ số trong Python. Khi chúng tôi làm như vậy, chỉ mục

names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
3 cung cấp cho chúng tôi yếu tố cuối cùng trong danh sách,
names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
4 lần thứ hai đến cuối cùng, v.v. Bởi vì điều này,
names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
5 và
names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
6 chỉ vào cùng một yếu tố ở đây.

Có một sự khác biệt quan trọng giữa danh sách và chuỗi: chúng ta có thể thay đổi các giá trị trong danh sách, nhưng chúng ta không thể thay đổi các ký tự riêng lẻ trong một chuỗi. Ví dụ:

names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)

names is originally: ['Curie', 'Darwing', 'Turing']
final value of names: ['Curie', 'Darwin', 'Turing']

hoạt động, nhưng:

name = 'Darwin'
name[0] = 'd'

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in ()
      1 name = 'Darwin'
----> 2 name[0] = 'd'

TypeError: 'str' object does not support item assignment

không làm.

Ch-Ch-Ch-Ch-Changes

Dữ liệu có thể được sửa đổi tại chỗ được gọi là có thể thay đổi, trong khi dữ liệu không thể sửa đổi được gọi là bất biến. Chuỗi và số là bất biến. Điều này không có nghĩa là các biến có giá trị chuỗi hoặc số là hằng số, nhưng khi chúng tôi muốn thay đổi giá trị của một chuỗi hoặc biến số, chúng tôi chỉ có thể thay thế giá trị cũ bằng một giá trị hoàn toàn mới.

Danh sách và mảng, mặt khác, có thể thay đổi: chúng ta có thể sửa đổi chúng sau khi chúng được tạo ra. Chúng ta có thể thay đổi các yếu tố riêng lẻ, nối các yếu tố mới hoặc sắp xếp lại toàn bộ danh sách. Đối với một số hoạt động, như sắp xếp, chúng ta có thể chọn sử dụng chức năng sửa đổi dữ liệu tại chỗ hay hàm trả về một bản sao đã sửa đổi và để lại bản gốc không thay đổi.

Hãy cẩn thận khi sửa đổi dữ liệu tại chỗ. Nếu hai biến đề cập đến cùng một danh sách và bạn sửa đổi giá trị danh sách, nó sẽ thay đổi cho cả hai biến!

salsa = ['peppers', 'onions', 'cilantro', 'tomatoes']
my_salsa = salsa        # <-- my_salsa and salsa point to the *same* list data in memory
salsa[0] = 'hot peppers'
print('Ingredients in my salsa:', my_salsa)

Ingredients in my salsa: ['hot peppers', 'onions', 'cilantro', 'tomatoes']

Nếu bạn muốn các biến có giá trị có thể thay đổi độc lập, bạn phải tạo một bản sao của giá trị khi bạn gán nó.

odds = [1, 3, 5, 7]
print('odds are:', odds)
0

odds = [1, 3, 5, 7]
print('odds are:', odds)
1

Do những cạm bẫy như thế này, mã sửa đổi dữ liệu có thể khó hiểu hơn. Tuy nhiên, việc sửa đổi cấu trúc dữ liệu lớn thường hiệu quả hơn nhiều so với việc tạo ra một bản sao sửa đổi cho mọi thay đổi nhỏ. Bạn nên xem xét cả hai khía cạnh này khi viết mã của bạn.

Danh sách lồng nhau

Vì một danh sách có thể chứa bất kỳ biến Python nào, nó thậm chí có thể chứa các danh sách khác.

Ví dụ, chúng tôi có thể đại diện cho các sản phẩm trong kệ của một cửa hàng tạp hóa nhỏ:

odds = [1, 3, 5, 7]
print('odds are:', odds)
2

Dưới đây là một ví dụ trực quan về cách lập chỉ mục danh sách các danh sách

names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
7 hoạt động:

Hướng dẫn how do you list multiple items in python? - làm thế nào để bạn liệt kê nhiều mục trong python?

Sử dụng danh sách được khai báo trước đó

names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
7, đây sẽ là kết quả của các hoạt động chỉ mục được hiển thị trong hình ảnh:

odds = [1, 3, 5, 7]
print('odds are:', odds)
3

odds = [1, 3, 5, 7]
print('odds are:', odds)
4

Cảm ơn Hadley Wickham cho hình ảnh trên.

Danh sách không đồng nhất

Danh sách trong Python có thể chứa các yếu tố của các loại khác nhau. Thí dụ:

odds = [1, 3, 5, 7]
print('odds are:', odds)
5

Có nhiều cách để thay đổi nội dung của danh sách bên cạnh việc gán các giá trị mới cho các yếu tố riêng lẻ:

odds = [1, 3, 5, 7]
print('odds are:', odds)
6

odds = [1, 3, 5, 7]
print('odds are:', odds)
7

odds = [1, 3, 5, 7]
print('odds are:', odds)
8

odds = [1, 3, 5, 7]
print('odds are:', odds)
9

print('first element:', odds[0])
print('last element:', odds[3])
print('"-1" element:', odds[-1])
0

print('first element:', odds[0])
print('last element:', odds[3])
print('"-1" element:', odds[-1])
1

Mặc dù sửa đổi tại chỗ, rất hữu ích khi nhớ rằng Python xử lý các danh sách theo một cách hơi phản trực giác.

Như chúng ta đã thấy trước đó, khi chúng ta sửa đổi mục Danh sách

names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
9 tại chỗ, nếu chúng ta lập danh sách, (cố gắng) sao chép nó và sau đó sửa đổi danh sách này, chúng ta có thể gây ra tất cả các loại rắc rối. Điều này cũng áp dụng để sửa đổi danh sách bằng các chức năng trên:

print('first element:', odds[0])
print('last element:', odds[3])
print('"-1" element:', odds[-1])
2

print('first element:', odds[0])
print('last element:', odds[3])
print('"-1" element:', odds[-1])
3

Điều này là do Python lưu trữ một danh sách trong bộ nhớ và sau đó có thể sử dụng nhiều tên để tham khảo cùng một danh sách. Nếu tất cả những gì chúng tôi muốn làm là sao chép danh sách (đơn giản), chúng tôi có thể sử dụng lại chức năng

names is originally: ['Curie', 'Darwing', 'Turing']
final value of names: ['Curie', 'Darwin', 'Turing']
0, vì vậy chúng tôi không sửa đổi danh sách mà chúng tôi không có ý định:

print('first element:', odds[0])
print('last element:', odds[3])
print('"-1" element:', odds[-1])
4

print('first element:', odds[0])
print('last element:', odds[3])
print('"-1" element:', odds[-1])
5

Các tập hợp danh sách và chuỗi có thể được truy cập bằng cách chỉ định phạm vi giá trị trong ngoặc, tương tự như cách chúng tôi truy cập phạm vi vị trí trong một mảng numpy. Điều này thường được gọi là cắt lát của người dùng danh sách/chuỗi.

print('first element:', odds[0])
print('last element:', odds[3])
print('"-1" element:', odds[-1])
6

print('first element:', odds[0])
print('last element:', odds[3])
print('"-1" element:', odds[-1])
7

Cắt từ cuối

Sử dụng cắt để chỉ truy cập bốn ký tự cuối cùng của chuỗi hoặc mục của danh sách.

print('first element:', odds[0])
print('last element:', odds[3])
print('"-1" element:', odds[-1])
8

print('first element:', odds[0])
print('last element:', odds[3])
print('"-1" element:', odds[-1])
9

Giải pháp của bạn có hoạt động bất kể bạn biết trước độ dài của chuỗi hay danh sách (ví dụ: nếu bạn muốn áp dụng giải pháp cho một tập hợp các danh sách các độ dài khác nhau)? Nếu không, hãy cố gắng thay đổi cách tiếp cận của bạn để làm cho nó mạnh mẽ hơn.

Gợi ý: Hãy nhớ rằng các chỉ số có thể âm tính cũng như tích cực

Dung dịch

Sử dụng các chỉ số tiêu cực để đếm các phần tử từ cuối của một thùng chứa (như danh sách hoặc chuỗi):

first element: 1
last element: 7
"-1" element: 7
0

Những lát không liên tục

Cho đến nay, chúng tôi đã thấy cách sử dụng cắt lát để lấy các khối liên tiếp từ một chuỗi. Nhưng điều gì sẽ xảy ra nếu chúng ta muốn lấy một tập hợp các mục nhập không phải là người cạnh nhau trong chuỗi?

Bạn có thể đạt được điều này bằng cách cung cấp một đối số thứ ba cho phạm vi trong khung, được gọi là kích thước bước. Ví dụ dưới đây cho thấy cách bạn có thể lấy mỗi mục thứ ba trong danh sách:

first element: 1
last element: 7
"-1" element: 7
1

Lưu ý rằng lát cắt bắt đầu với mục đầu tiên trong phạm vi, sau đó là các mục được thực hiện trong các khoảng cách tương đương (các bước) sau đó. Nếu bạn muốn bắt đầu tập hợp con với mục thứ ba, bạn sẽ cần chỉ định đó là điểm bắt đầu của phạm vi cắt lát:

first element: 1
last element: 7
"-1" element: 7
2

Sử dụng đối số kích thước bước để tạo ra một chuỗi mới chỉ chứa mọi ký tự khác trong chuỗi, trong một khu vườn Octopus trong bóng râm. Bắt đầu với việc tạo một biến để giữ chuỗi:

first element: 1
last element: 7
"-1" element: 7
3

Những lát nào của

names is originally: ['Curie', 'Darwing', 'Turing']
final value of names: ['Curie', 'Darwin', 'Turing']
1 sẽ tạo ra đầu ra sau (nghĩa là, ký tự thứ nhất, ký tự thứ ba và mọi ký tự khác cho đến cuối chuỗi)?

Dung dịch

Sử dụng các chỉ số tiêu cực để đếm các phần tử từ cuối của một thùng chứa (như danh sách hoặc chuỗi):

Những lát không liên tục

Cho đến nay, chúng tôi đã thấy cách sử dụng cắt lát để lấy các khối liên tiếp từ một chuỗi. Nhưng điều gì sẽ xảy ra nếu chúng ta muốn lấy một tập hợp các mục nhập không phải là người cạnh nhau trong chuỗi?

first element: 1
last element: 7
"-1" element: 7
4

first element: 1
last element: 7
"-1" element: 7
5

Bạn có thể đạt được điều này bằng cách cung cấp một đối số thứ ba cho phạm vi trong khung, được gọi là kích thước bước. Ví dụ dưới đây cho thấy cách bạn có thể lấy mỗi mục thứ ba trong danh sách:

first element: 1
last element: 7
"-1" element: 7
6

first element: 1
last element: 7
"-1" element: 7
7

Lưu ý rằng lát cắt bắt đầu với mục đầu tiên trong phạm vi, sau đó là các mục được thực hiện trong các khoảng cách tương đương (các bước) sau đó. Nếu bạn muốn bắt đầu tập hợp con với mục thứ ba, bạn sẽ cần chỉ định đó là điểm bắt đầu của phạm vi cắt lát:

Sử dụng đối số kích thước bước để tạo ra một chuỗi mới chỉ chứa mọi ký tự khác trong chuỗi, trong một khu vườn Octopus trong bóng râm. Bắt đầu với việc tạo một biến để giữ chuỗi:

first element: 1
last element: 7
"-1" element: 7
8

  1. names is originally: ['Curie', 'Darwing', 'Turing']
    final value of names: ['Curie', 'Darwin', 'Turing']
    
    4
  2. names is originally: ['Curie', 'Darwing', 'Turing']
    final value of names: ['Curie', 'Darwin', 'Turing']
    
    5
  3. names is originally: ['Curie', 'Darwing', 'Turing']
    final value of names: ['Curie', 'Darwin', 'Turing']
    
    6
  4. names is originally: ['Curie', 'Darwing', 'Turing']
    final value of names: ['Curie', 'Darwin', 'Turing']
    
    7

Những lát nào của

names is originally: ['Curie', 'Darwing', 'Turing']
final value of names: ['Curie', 'Darwin', 'Turing']
1 sẽ tạo ra đầu ra sau (nghĩa là, ký tự thứ nhất, ký tự thứ ba và mọi ký tự khác cho đến cuối chuỗi)?

Dung dịch

Sử dụng các chỉ số tiêu cực để đếm các phần tử từ cuối của một thùng chứa (như danh sách hoặc chuỗi):

first element: 1
last element: 7
"-1" element: 7
9

Những lát không liên tục

Cho đến nay, chúng tôi đã thấy cách sử dụng cắt lát để lấy các khối liên tiếp từ một chuỗi. Nhưng điều gì sẽ xảy ra nếu chúng ta muốn lấy một tập hợp các mục nhập không phải là người cạnh nhau trong chuỗi?

  • Bạn có thể đạt được điều này bằng cách cung cấp một đối số thứ ba cho phạm vi trong khung, được gọi là kích thước bước. Ví dụ dưới đây cho thấy cách bạn có thể lấy mỗi mục thứ ba trong danh sách:

  • Lưu ý rằng lát cắt bắt đầu với mục đầu tiên trong phạm vi, sau đó là các mục được thực hiện trong các khoảng cách tương đương (các bước) sau đó. Nếu bạn muốn bắt đầu tập hợp con với mục thứ ba, bạn sẽ cần chỉ định đó là điểm bắt đầu của phạm vi cắt lát:

  • Sử dụng đối số kích thước bước để tạo ra một chuỗi mới chỉ chứa mọi ký tự khác trong chuỗi, trong một khu vườn Octopus trong bóng râm. Bắt đầu với việc tạo một biến để giữ chuỗi:

  • Những lát nào của

    names is originally: ['Curie', 'Darwing', 'Turing']
    final value of names: ['Curie', 'Darwin', 'Turing']
    
    1 sẽ tạo ra đầu ra sau (nghĩa là, ký tự thứ nhất, ký tự thứ ba và mọi ký tự khác cho đến cuối chuỗi)?

  • Để có được mọi ký tự khác, bạn cần cung cấp một lát cắt có kích thước bước 2:

Làm thế nào để bạn thêm nhiều mục vào một danh sách trong Python?

Phương thức append () chỉ có thể thêm một mục cùng một lúc. Nếu bạn muốn thêm nhiều phần tử cùng một lúc, bạn sẽ muốn sử dụng phương thức Extend (). Phương thức mở rộng lấy một danh sách các mục làm đối số của nó và sau đó thêm từng mục của nó vào một danh sách hiện có dưới dạng một mục riêng biệt.use the extend() method. The extend method takes a list of items as its argument and then adds each of its items to an existing list as a separate item.

Làm cách nào để thêm nhiều yếu tố vào danh sách?

Để nối nhiều giá trị vào danh sách, chúng ta có thể sử dụng phương thức extrid () tích hợp trong Python.Phương thức mở rộng () lấy danh sách làm đối số và nối nó đến cuối danh sách hiện có.use the built-in extend() method in Python. The extend() method takes the list as an argument and appends it to the end of an existing list.

Làm thế nào để bạn nhận được nhiều giá trị từ một danh sách trong Python?

Trong Python, bạn có thể trả về nhiều giá trị bằng cách trả về chúng được phân tách bằng dấu phẩy.Trong Python, các giá trị phân tách bằng dấu phẩy được coi là các bộ đếm không có dấu ngoặc đơn, ngoại trừ khi được yêu cầu bởi cú pháp.Vì lý do này, hàm trong ví dụ trên trả về một tuple với mỗi giá trị dưới dạng một phần tử.return them separated by commas. In Python, comma-separated values are considered tuples without parentheses, except where required by syntax. For this reason, the function in the above example returns a tuple with each value as an element.

Làm thế nào để bạn tạo một danh sách các biến trong Python?

Trong Python, một danh sách được tạo ra bằng cách đặt các phần tử bên trong dấu ngoặc vuông [], được phân tách bằng dấu phẩy.Một danh sách có thể có bất kỳ số lượng mục nào và chúng có thể thuộc các loại khác nhau (số nguyên, float, chuỗi, v.v.).placing elements inside square brackets [] , separated by commas. A list can have any number of items and they may be of different types (integer, float, string, etc.).