Làm thế nào để bạn hiển thị một danh sách theo chiều dọc trong python?

nhập 'gói. rung / vật liệu. phi tiêu'; . chìa khóa}); . tiêu đề, nhà. Giàn giáo ( appBar. AppBar( tiêu đề. const Văn bản(tiêu đề), ), nội dung. Vùng chứa (lề. const EdgeInsets. đối xứng (dọc. 20. 0), chiều cao. 200. 0, đứa trẻ. ListView( // Dòng tiếp theo này thực hiện thủ thuật. cuộnHướng. trục. ngang, trẻ em. [ Vùng chứa ( chiều rộng. 160. 0, màu. Màu sắc. đỏ, ), Vùng chứa (chiều rộng. 160. 0, màu. Màu sắc. màu xanh lam, ), Vùng chứa (chiều rộng. 160. 0, màu. Màu sắc. màu xanh lá cây, ), Vùng chứa (chiều rộng. 160. 0, màu. Màu sắc. màu vàng, ), Vùng chứa (chiều rộng. 160. 0, màu. Màu sắc. quả cam, ), ], ), ), ), );

Giả sử chúng ta có một chuỗi s. Chúng ta phải tìm tất cả các từ theo chiều dọc theo thứ tự mà chúng xuất hiện trong s. Ở đây các từ được trả về dưới dạng một danh sách các chuỗi, chúng ta phải điền dấu cách khi cần thiết. (Dấu cách không được phép). Mỗi từ sẽ chỉ được đặt trên một cột và trong một cột sẽ chỉ có một từ. Vì vậy, nếu chuỗi đầu vào là “HOW ARE YOU”, thì đầu ra sẽ là [“HAY”, “ORO”, “WEU”]

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • S. = tạo một danh sách các chuỗi được chia theo khoảng trắng, tạo một mảng trống x, đặt hàng = 0

  • đối với mỗi từ tôi trong s, đặt hàng. = tối đa của hàng và độ dài của i

  • cột. = chiều dài của s

  • tạo một mảng và chứa đầy chuỗi rỗng và kích thước của nó là hàng

  • cho tôi trong khoảng từ 0 đến col – 1

    • j. = 0

    • trong khi j < độ dài của s[i]

      • trong khi i – độ dài của and[j] >= 1, do and[j]. = ans[j] nối “ ”

      • trả lời [j]. = ans[j] nối s[i, j]

      • tăng j lên 1

  • trả lại ans

Ví dụ (Trăn)

Chúng ta hãy xem triển khai sau đây để hiểu rõ hơn -

Bản thử trực tiếp

class Solution(object):
   def printVertically(self, s):
      s = s.split(" ")
      x = []
      row = 0
      for i in s:
         row = max(row, len(i))
      col = len(s)
      ans = ["" for i in range(row)]
      j = 0
      for i in range(col):
         j = 0
         while j < len(s[i]):
            #print(j, i)
            while i - len(ans[j]) >= 1:
               ans[j] += " "
            ans[j] += s[i][j]
            j += 1
      return ans
ob = Solution()
print(ob.printVertically("HOW ARE YOU"))
print(ob.printVertically("TO BE OR NOT TO BE"))

Đầu vào

"HOW ARE YOU"
"TO BE OR NOT TO BE"

đầu ra

["HAY","ORO","WEU"]
["TBONTB","OEROOE"," T"]

Làm thế nào để bạn hiển thị một danh sách theo chiều dọc trong python?


Làm thế nào để bạn hiển thị một danh sách theo chiều dọc trong python?

Cấu trúc dữ liệu danh sách của Python được xây dựng để đơn giản và linh hoạt. Chúng ta sẽ xem xét cách mọi người có thể tận dụng danh sách như một công cụ thiết yếu để tự động hóa và vượt qua các nhiệm vụ tẻ nhạt

Tôi sẽ trình bày một số kỹ thuật khác nhau để in danh sách bằng Python. Tôi sẽ trình bày những kiến ​​thức cơ bản về cách in danh sách bằng cách sử dụng phương thức

print(my_list[0], my_list[2])
3 tích hợp sẵn của Python, in danh sách bằng vòng lặp, cũng như một số thủ thuật định dạng gọn gàng chẳng hạn như in danh sách trên nhiều dòng

Không cảm thấy như đọc?


Danh sách trong Python là gì?

Một trong những tính năng quan trọng nhất của bất kỳ ngôn ngữ lập trình nào là khả năng định nghĩa các biến. Các biến cho phép lập trình viên lưu trữ thông tin, như số hoặc chuỗi văn bản và sử dụng lại thông tin đó một cách hiệu quả. Đây là một phần khiến máy tính trở thành công cụ tuyệt vời;

Giống như các biến, danh sách Python cũng lưu trữ thông tin. Cụ thể hơn, chúng lưu trữ các chuỗi thông tin. Điều này không giống như các danh sách tương tự mà bạn có thể quen thuộc. Nếu một người muốn lưu trữ một chuỗi các việc cần làm để họ nhớ chúng suốt cả ngày, họ có thể viết một danh sách việc cần làm. Danh sách cửa hàng tạp hóa là một ví dụ khác

Trong khi cấu trúc mảng và danh sách trong một số ngôn ngữ lập trình yêu cầu học cú pháp thú vị và có các quy tắc nghiêm ngặt về loại dữ liệu mà chúng có thể chứa, thì danh sách Python không có điều đó. Điều này làm cho chúng trở nên siêu đơn giản để sử dụng và không kém phần linh hoạt. Bây giờ chúng ta sẽ xem cách xác định danh sách và truy cập thông tin trong đó. Kiểm tra nó ra

my_list = ['pizza', 'cookies', 'soda']

Ở đây, tôi đã định nghĩa một danh sách có tên là

print(my_list[0], my_list[2])
4 có các phần tử là chuỗi, nhưng các phần tử của danh sách cũng có thể là các số như số nguyên và số thực, các danh sách khác hoặc kết hợp các loại khác nhau. Bạn có thể nghĩ về danh sách này đại diện cho các mặt hàng trong danh sách tạp hóa và số lượng tôi muốn mua

Nếu tôi muốn truy cập cụ thể bất kỳ thông tin nào trong số này, tôi sẽ sử dụng một kỹ thuật gọi là lập chỉ mục danh sách. Với lập chỉ mục danh sách, người ta chỉ cần đặt số (bắt đầu bằng 0) của phần tử mà người ta muốn truy cập trong dấu ngoặc vuông sau tên của danh sách. Chẳng hạn, nếu tôi muốn in phần tử thứ nhất và thứ ba của

print(my_list[0], my_list[2])
4, tôi sẽ sử dụng đoạn mã sau

print(my_list[0], my_list[2])

đầu ra

Làm thế nào để bạn hiển thị một danh sách theo chiều dọc trong python?
Hình ảnh 1 - In các phần tử danh sách riêng lẻ trong Python (hình ảnh của tác giả)

Lưu ý cách tôi sử dụng các chỉ số 0 và 2 để biểu thị các phần tử thứ nhất và thứ ba vì việc lập chỉ mục Python bắt đầu bằng 0

Bây giờ, điều đó chắc chắn hữu ích, nhưng bạn có thể tự hỏi làm thế nào bất kỳ điều nào trong số này hiệu quả hơn so với làm việc với các biến thông thường. Rốt cuộc, chúng tôi phải chỉ định từng thành phần mà chúng tôi muốn in riêng lẻ trong ví dụ trên

Tiếp theo, tôi sẽ chỉ cho bạn cách bạn có thể bắt đầu tận dụng một số tính năng tích hợp sẵn khác của Python để truy cập thông tin trong danh sách hiệu quả hơn nhiều


In danh sách Python bằng vòng lặp For

Có lẽ một trong những cách trực quan nhất để truy cập và thao tác thông tin trong danh sách là sử dụng vòng lặp for. Điều làm cho kỹ thuật này trở nên trực quan là nó đọc ít giống lập trình hơn và giống tiếng Anh viết hơn

Hãy tưởng tượng bạn muốn mô tả ý định mua các mặt hàng trong danh sách thực phẩm của mình cho một người bạn. Bạn có thể nói điều gì đó như, "Đối với mỗi mặt hàng trong danh sách thực phẩm của tôi, tôi muốn mua số lượng này". Bạn có thể viết gần như tương tự bằng Python để lặp qua danh sách Python của mình. Hãy in một số chuỗi được định dạng dựa trên nội dung của danh sách Python của chúng tôi

________số 8_______

đầu ra

Làm thế nào để bạn hiển thị một danh sách theo chiều dọc trong python?
Hình 2 - In danh sách Python trong vòng lặp for (ảnh của tác giả)

Ở đây, bạn có thể thấy rằng tôi có thể lặp qua từng phần tử trong danh sách của mình mà không cần phải chỉ định từng phần tử theo cách thủ công. Hãy tưởng tượng điều này sẽ tiết kiệm được bao nhiêu công việc nếu danh sách của bạn có 50.000 phần tử thay vì chỉ ba phần tử

Bạn cũng có thể lặp qua một danh sách bằng cách sử dụng vòng lặp for kết hợp với phương thức

print(my_list[0], my_list[2])
6 tích hợp sẵn của Python

for element in range(len(my_list)):
    print(f"I bought {my_list[element]}!")

Đầu ra ở đây giống nhau, nhưng thay vì

print(my_list[0], my_list[2])
7 đề cập đến một phần tử thực tế trong danh sách của chúng ta như đã làm trong ví dụ trước, thì giờ đây,
print(my_list[0], my_list[2])
7 đề cập đến vị trí chỉ mục. Chúng tôi sử dụng lập chỉ mục danh sách một lần nữa để truy cập phần tử tại vị trí được chỉ định bởi
print(my_list[0], my_list[2])
7

Bây giờ chúng tôi đang nhận được ở đâu đó. Hy vọng rằng bạn có thể thấy rằng Python cung cấp một số công cụ tuyệt vời để truy cập chuỗi thông tin được lưu trữ trong danh sách. Hãy cùng xem một số cách khác để in danh sách Python


Sử dụng toán tử * để in danh sách Python

Một cách khác để in tất cả nội dung của danh sách là sử dụng toán tử

for element in my_list:
    print(f"I bought {element}!")
0 hoặc "splat". Toán tử splat có thể được sử dụng để chuyển tất cả nội dung của danh sách cho một hàm. Chẳng hạn, phương thức Python tích hợp sẵn
print(my_list[0], my_list[2])
3 có thể in từng phần tử của danh sách Python khi được cung cấp tên của danh sách trước toán tử splat

Hãy xem nó trông như thế nào trong mã

print(*my_list)

đầu ra

Làm thế nào để bạn hiển thị một danh sách theo chiều dọc trong python?
Hình 3 - In danh sách Python bằng toán tử * (ảnh của tác giả)

Nó đơn giản mà


In danh sách bằng phương thức print()

Nếu bạn muốn một kỹ thuật thậm chí còn dễ sử dụng hơn thế, bạn chỉ cần chuyển tên của danh sách cho chính phương thức

print(my_list[0], my_list[2])
3. Bạn nên lưu ý rằng đầu ra sẽ hơi khác một chút trong trường hợp này. Xem nếu bạn có thể phát hiện ra sự khác biệt

print(my_list)

đầu ra

Làm thế nào để bạn hiển thị một danh sách theo chiều dọc trong python?
Hình 4 - In danh sách Python bằng phương thức print() (ảnh của tác giả)

Đầu ra trong trường hợp này là "thô" hơn một chút. Chúng tôi vẫn có dấu ngoặc vuông xung quanh danh sách và dấu ngoặc kép xung quanh mỗi phần tử


In danh sách bằng phương thức map()

Tuy nhiên, một cách khác để in các phần tử của danh sách là sử dụng phương thức

for element in my_list:
    print(f"I bought {element}!")
3 tích hợp sẵn của Python. Phương thức này có hai đối số. một hàm để áp dụng cho từng phần tử của danh sách và danh sách. Ở đây, chúng tôi sẽ chuyển
for element in my_list:
    print(f"I bought {element}!")
4 làm chức năng của chúng tôi để áp dụng cho từng phần tử và chúng tôi sẽ chuyển
print(my_list[0], my_list[2])
4 làm danh sách của chúng tôi. Ngoài ra,
for element in my_list:
    print(f"I bought {element}!")
3 trả về một đối tượng bản đồ, vì vậy chúng tôi phải biến kết quả thành một danh sách để các phần tử được in chính xác

list(map(print, my_list))

đầu ra

Làm thế nào để bạn hiển thị một danh sách theo chiều dọc trong python?
Hình 5 - In danh sách bằng phương thức map() (ảnh của tác giả)

Bạn có thể bỏ qua

for element in my_list:
    print(f"I bought {element}!")
7 ở đầu ra. Điều này chỉ đơn giản đề cập đến thực tế là phương thức
print(my_list[0], my_list[2])
3 không trả về bất kỳ giá trị nào. Nó chỉ in


In danh sách bằng phương thức join()

Một cách thuận tiện khác để in danh sách Python là sử dụng phương thức

for element in my_list:
    print(f"I bought {element}!")
9.
for element in my_list:
    print(f"I bought {element}!")
9 là một phương thức chuỗi, nghĩa là nó phải được gọi trên một chuỗi. Chúng ta sẽ thấy điều này có nghĩa là gì trong giây lát. Với phương pháp này, bạn có thể chỉ định một dấu phân cách sẽ nằm giữa mỗi phần tử trong danh sách khi tất cả chúng được in ra. Nếu nó nghe có vẻ phức tạp, tôi chắc rằng đoạn mã sẽ làm cho nó rõ ràng

print(' '.join(my_list))

đầu ra

Làm thế nào để bạn hiển thị một danh sách theo chiều dọc trong python?
Hình 6 - In danh sách Python bằng phương thức join() (ảnh của tác giả)

Bạn có thể thấy trong mã mà chúng tôi đang sử dụng người bạn tốt của chúng tôi, phương pháp

print(my_list[0], my_list[2])
3, để in danh sách. Điều khác biệt là chúng ta bắt đầu bằng cách chỉ định một chuỗi. Trong trường hợp này, chuỗi chỉ là khoảng trắng. Sau đó, như tôi đã đề cập trước đây, chúng tôi gọi phương thức chuỗi
for element in my_list:
    print(f"I bought {element}!")
9 trên chuỗi này và chúng tôi chuyển nó vào danh sách của mình. Điều này kết hợp hiệu quả từng thành phần trong danh sách của chúng tôi và kết nối chúng với một khoảng trắng. Chúng tôi in kết quả này ra và đầu ra gợi nhớ đến đầu ra của một số phương pháp trước đó mà chúng tôi đã xem xét


In danh sách trên một dòng với Dấu phân cách tùy chỉnh

Như tôi đã đề cập trong phần trước, chúng ta cũng có thể sử dụng phương pháp

for element in my_list:
    print(f"I bought {element}!")
9 để in danh sách của mình bằng dấu phân cách hoặc dấu phân cách tùy chỉnh. Thay đổi duy nhất chúng ta cần thực hiện đối với mã trong ví dụ trước là thay đổi chuỗi mà chúng ta gọi là
for element in my_list:
    print(f"I bought {element}!")
9. Chúng tôi đã sử dụng khoảng trắng trong ví dụ đầu tiên, nhưng bạn có thể sử dụng bất kỳ chuỗi nào. Ở đây, chúng ta sẽ sử dụng chuỗi
for element in range(len(my_list)):
    print(f"I bought {my_list[element]}!")
5 (chú ý khoảng trắng ở đầu và cuối)

print(' I like '.join(my_list))

đầu ra

Làm thế nào để bạn hiển thị một danh sách theo chiều dọc trong python?
Hình 7 - In danh sách bằng dấu tách tùy chỉnh (hình ảnh của tác giả)

Bạn có thể thấy rằng thay vì nối các thành phần danh sách của chúng tôi bằng một khoảng trắng, thay vào đó, chúng tôi nối chúng lại với nhau bằng dấu tách tùy chỉnh của chúng tôi

for element in range(len(my_list)):
    print(f"I bought {my_list[element]}!")
5. Điều này hữu ích khi bạn muốn tạo tệp CSV hoặc TSV (giá trị được phân tách bằng dấu phẩy hoặc được phân tách bằng tab). Đây là những định dạng rất phổ biến trong các ứng dụng khoa học dữ liệu. Bạn chỉ cần chỉ định
for element in range(len(my_list)):
    print(f"I bought {my_list[element]}!")
7 hoặc
for element in range(len(my_list)):
    print(f"I bought {my_list[element]}!")
8 làm chuỗi dấu phân cách của mình


Trình độ cao. Làm cách nào để in danh sách theo chiều dọc bằng Python?

Có một số trường hợp sử dụng nâng cao mà bạn có thể có một danh sách các danh sách và bạn muốn in các mục danh sách theo chiều dọc. Thật dễ dàng để thực hiện với một danh sách, nhưng không trực quan với các cấu trúc dữ liệu phức tạp hơn

Kiểm tra danh sách sau - nó chứa ba danh sách, mỗi danh sách đại diện cho điểm của ba học sinh trong bài kiểm tra (tổng cộng 3 bài kiểm tra)

test_scores = [[91, 67, 32], [55, 79, 83], [99, 12, 49]]

Để lấy điểm của sinh viên đầu tiên, chúng ta có thể truy cập các phần tử theo cú pháp sau

print(my_list[0], my_list[2])
0

Nhưng điều đó thật tẻ nhạt để viết và không thể mở rộng. Thay vào đó, chúng ta có thể sử dụng hai vòng lặp for - vòng thứ nhất lấy ba danh sách và vòng thứ hai lấy các mục danh sách riêng lẻ. Sau đó, bạn có thể gọi phương thức

print(my_list[0], my_list[2])
3 với ký tự kết thúc tùy chỉnh. Đừng quên gọi phương thức
print(my_list[0], my_list[2])
3 một lần nữa ở cùng mức thụt đầu dòng như vòng lặp đầu tiên - nếu không, tất cả các phần tử sẽ được in trên cùng một dòng

print(my_list[0], my_list[2])
1

đầu ra

Làm thế nào để bạn hiển thị một danh sách theo chiều dọc trong python?
Hình 8 - In danh sách Python theo chiều dọc (ảnh của tác giả)

Bạn có thể đơn giản hóa cú pháp hơn nữa bằng cách sử dụng phương thức

print(*my_list)
1

print(my_list[0], my_list[2])
2

Đầu ra giống hệt nhau, nhưng mã ngắn hơn đáng kể


Phần kết luận

Tôi hy vọng sau những ví dụ này, bạn sẽ hiểu rõ hơn về vô số cách mà Python cung cấp để truy cập thông tin được lưu trữ trong danh sách Python. Những kỹ thuật này cung cấp cho lập trình viên rất nhiều quyền kiểm soát đối với định dạng và với một chút bí quyết, bạn có thể nhận được kết quả đầu ra mà bạn muốn chỉ bằng một dòng mã. Python thực hiện một công việc đặc biệt là làm cho các tác vụ như thế này cực kỳ đơn giản và đôi khi dễ dàng như viết bằng tiếng Anh