Bạn có thể chuyển đổi một danh sách trong Python không?

Phản chiếu Khung dữ liệu qua đường chéo chính của nó bằng cách viết các hàng dưới dạng cột và ngược lại. Thuộc tính

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
2 là một truy cập vào phương thức
list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
3

Tham số*args bộ, tùy chọn

Được chấp nhận để tương thích với NumPy

bản sao bool, mặc định Sai

Có sao chép dữ liệu sau khi chuyển đổi hay không, ngay cả đối với DataFrames với một loại duy nhất

Lưu ý rằng một bản sao luôn được yêu cầu cho DataFrames dtype hỗn hợp hoặc cho DataFrames với bất kỳ loại tiện ích mở rộng nào

ReturnsDữ LiệuKhung

Khung dữ liệu được chuyển đổi

Xem thêm

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
4

Hoán vị các kích thước của một mảng nhất định

ghi chú

Chuyển đổi một DataFrame với các loại hỗn hợp sẽ dẫn đến một DataFrame đồng nhất với loại đối tượng. Trong trường hợp như vậy, một bản sao của dữ liệu luôn được tạo

ví dụ

Khung dữ liệu vuông với dtype đồng nhất

>>> d1 = {'col1': [1, 2], 'col2': [3, 4]}
>>> df1 = pd.DataFrame[data=d1]
>>> df1
   col1  col2
0     1     3
1     2     4

>>> df1_transposed = df1.T # or df1.transpose[]
>>> df1_transposed
      0  1
col1  1  2
col2  3  4

Khi dtype đồng nhất trong DataFrame ban đầu, chúng tôi sẽ nhận được DataFrame được chuyển đổi với cùng một loại

Đối với mảng 1-D, điều này trả về chế độ xem không thay đổi của mảng ban đầu, vì một vectơ được chuyển đổi chỉ đơn giản là cùng một vectơ. Để chuyển đổi mảng 1-D thành vectơ cột 2-D, phải thêm một chiều bổ sung, e. g. ,

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
5 đạt được điều này, cũng như
list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
6. Đối với mảng 2 chiều, đây là chuyển vị ma trận tiêu chuẩn. Đối với một mảng n-D, nếu các trục được cung cấp, thứ tự của chúng cho biết cách các trục được hoán vị [xem Ví dụ]. Nếu các trục không được cung cấp, thì
list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
7

Thông số . a mảng_like

mảng đầu vào

trục tuple hoặc danh sách ints, tùy chọn

Nếu được chỉ định, nó phải là một bộ hoặc danh sách chứa hoán vị của [0,1,…,N-1] trong đó N là số trục của một. Trục thứ i của mảng được trả về sẽ tương ứng với trục được đánh số

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
8 của đầu vào. Nếu không được chỉ định, giá trị mặc định là
list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
9, đảo ngược thứ tự của các trục

Khi sử dụng bảng tính, có thể dễ dàng như sử dụng hàm

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
2 trên một phạm vi để chuyển đổi các hàng và cột thành các cột và hàng, nhưng làm thế nào để bạn thực hiện điều đó trong Python?

Để chuyển đổi danh sách các danh sách trong Python, trước tiên hãy làm phẳng danh sách hai chiều thành danh sách một chiều, sau đó sử dụng cách sau.

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
3 trong đó
list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
4 đại diện cho danh sách được làm phẳng và
list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
5 đại diện cho danh sách 2D gốc

Chuyển đổi Float thành String trong Python

Vui lòng bật JavaScript

Chuyển đổi Float thành String trong Python

Ví dụ

Đây là một ví dụ đang chạy về cách thức hoạt động của nó

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

# transpose this list so that instead of being a 3 x 2 dimension, it will be a 2 x 3, like so:

transposed_list = [[2020, "A"], [2021, "B"], [2022, "C"]] 

Bước đầu tiên là làm phẳng danh sách các danh sách. Khi danh sách các danh sách đã được làm phẳng, bạn có thể tiến hành xây dựng danh sách được chuyển đổi mới

Bất kỳ ví dụ nào được sử dụng trong bài viết về làm phẳng danh sách các danh sách sẽ có thể đạt được kết quả tương tự [chỉ cần áp dụng phương pháp phù hợp nhất với trường hợp sử dụng của bạn], nhưng vì lợi ích của ví dụ này, tôi sẽ sử dụng

Đây là cách nó trông như thế nào cho đến nay bằng cách sử dụng ví dụ hoạt động

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']

Bây giờ chúng ta đã có thể làm phẳng danh sách 2D ban đầu của mình, bước tiếp theo là lập bản đồ kích thước mới của mỗi ô cần được tham chiếu đến.

Ví dụ: trong danh sách phẳng mới, mỗi phần tử trong danh sách này đến từ danh sách 2D ban đầu và các tọa độ nơi mỗi phần tử đến từ danh sách ban đầu như sau

________số 8

Để chuyển đổi danh sách phẳng thành danh sách chuyển đổi, tọa độ của từng phần tử bây giờ cần được chèn vào danh sách danh sách mới trong đó tọa độ trông giống như thế này

new_coord => [R1C1, R2C1, R1C2, R2C2, R1C3, R2C3]

Để nắm bắt các giá trị này từ danh sách phẳng, bạn sẽ cần các tham chiếu chỉ mục sau

>>> df1_transposed = df1.T # or df1.transpose[]
>>> df1_transposed
      0  1
col1  1  2
col2  3  4
0

Mẫu này rất quan trọng để xem vì nó có thể hữu ích khi cắt danh sách

Chuyển danh sách 2D

Vì có một mẫu tuyến tính đẹp, chúng ta có thể áp dụng một số phương tiện đơn giản để tạo danh sách danh sách được chuyển đổi mới, đây là một phương pháp như vậy bằng cách sử dụng khả năng hiểu danh sách

>>> df1_transposed = df1.T # or df1.transpose[]
>>> df1_transposed
      0  1
col1  1  2
col2  3  4
1

Như bạn có thể thấy từ ví dụ trên, toán tử trải rộng và hiểu danh sách cho phép chuyển danh sách 2D thành kết quả đang được tìm kiếm

Có một số điều diễn ra trong tuyên bố này mà tôi sẽ tách ra, bắt đầu từ điều dễ hiểu nhất là

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
6

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
7 làm gì?

Để lặp qua một chuỗi số bằng Python, hãy kết hợp câu lệnh

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
8 tiêu chuẩn với hàm
list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
9. Hàm
list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
9 có các định dạng sau tùy thuộc vào số lượng tham số bạn đang sử dụng

>>> df1_transposed = df1.T # or df1.transpose[]
>>> df1_transposed
      0  1
col1  1  2
col2  3  4
7

Nếu chỉ sử dụng một tham số, giả định là một chuỗi bắt đầu từ 0. Do đó, có

flat_list => [2020, 2021, 2022, 'A', 'B', 'C']
orig_coord => [R1C1, R1C2, R1C3, R2C1, R2C2, R2C3] 
1 sẽ tạo ra chuỗi
flat_list => [2020, 2021, 2022, 'A', 'B', 'C']
orig_coord => [R1C1, R1C2, R1C3, R2C1, R2C2, R2C3] 
2

Khi nhập 2 hoặc nhiều tham số vào hàm

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
9, tham số đầu tiên là giá trị bắt đầu, tham số thứ hai là giá trị dừng [không bao gồm chính nó] và tham số thứ ba [nếu được sử dụng] là gia số từ đầu đến dừng

Kết hợp câu lệnh

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
8 với hàm
list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
9 cho phép sử dụng phép lặp thông qua chuỗi do hàm
list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
9 tạo ra. Do đó, quá trình này hơi giống với các ngôn ngữ khác có vòng lặp for của chúng, chẳng hạn như Javascript có.
flat_list => [2020, 2021, 2022, 'A', 'B', 'C']
orig_coord => [R1C1, R1C2, R1C3, R2C1, R2C2, R2C3] 
7

Cuối cùng, khi sử dụng tất cả những thứ này trong một tập hợp các dấu ngoặc vuông trên một dòng trong Python, bạn đã tạo ra cái được gọi là hiểu danh sách và tính đơn giản của nó tạo ra các kết quả sau

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
5

Với mục đích có thể chuyển đổi danh sách các danh sách, mục đích của việc sử dụng này là để lặp qua một thứ nguyên và với ví dụ đang chạy, các hàng được sử dụng làm phạm vi để lặp qua, tạo ra danh sách các số chỉ mục sau

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
6

Điều này cung cấp hạt giống để thu thập dữ liệu cần thiết từ danh sách phẳng

Toán tử lát

Phần thứ hai của câu lệnh, là phần đầu tiên được nhìn thấy, liên quan đến toán tử danh sách lát.

flat_list => [2020, 2021, 2022, 'A', 'B', 'C']
orig_coord => [R1C1, R1C2, R1C3, R2C1, R2C2, R2C3] 
8 rất giống với cách thức hoạt động của hàm
list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
9, toán tử lát cắt cho phép sử dụng lấy các giá trị từ danh sách theo các giá trị được sử dụng bên trong trong thao tác cắt lát

Đây là cách hoạt động của lát cắt này hoạt động với mỗi lần lặp từ hàm

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
9

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
0

Vì tất cả những thứ này được gói gọn trong một danh sách hiểu, mỗi kết quả từ thao tác lát ở trên được thêm vào dưới dạng phần tử riêng của nó trong danh sách mới

Tóm lược

Để chuyển đổi danh sách các danh sách trong Python, hãy sử dụng hai bước sau. làm phẳng danh sách các danh sách của bạn thành danh sách một chiều, sau đó sử dụng câu lệnh sau để hoán vị

list_2d = [[2020, 2021, 2022], ["A", "B", "C"]]

flat_list = [cell for row in list_2d for cell in row]

print[flat_list]

>> [2020, 2021, 2022, 'A', 'B', 'C']
0

Bạn có thể đưa những gì bạn đã học ở trên vào một hàm 2 dòng đơn giản nếu muốn, có lẽ đại loại như vậy

Chủ Đề