Hướng dẫn how do you join a list array in python? - làm thế nào để bạn tham gia một mảng danh sách trong python?

324

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Trong Python, tôi có thể làm:

>>> list = ['a', 'b', 'c']
>>> ', '.join[list]
'a, b, c'

Có cách nào dễ dàng để làm điều tương tự khi tôi có một danh sách các đối tượng không?

>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found

Hay tôi phải dùng đến một vòng lặp?

hỏi ngày 31 tháng 1 năm 2009 lúc 0:06Jan 31, 2009 at 0:06

Thay vào đó, bạn có thể sử dụng danh sách hiểu hoặc biểu thức máy phát: thay vào đó:

', '.join[[str[x] for x in list]]  # list comprehension
', '.join[str[x] for x in list]    # generator expression

Đã trả lời ngày 31 tháng 1 năm 2009 lúc 0:10Jan 31, 2009 at 0:10

Adam Rosenfieldadam RosenfieldAdam Rosenfield

380K96 Huy hiệu vàng508 Huy hiệu bạc584 Huy hiệu Đồng96 gold badges508 silver badges584 bronze badges

6

Trình xây dựng chuỗi tích hợp sẽ tự động gọi

>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
5:

''.join[map[str,list]]

Đã trả lời ngày 31 tháng 1 năm 2009 lúc 0:16Jan 31, 2009 at 0:16

Ngân hàng Kenan BankskenanKenan Banks

201K34 Huy hiệu vàng151 Huy hiệu bạc171 Huy hiệu đồng34 gold badges151 silver badges171 bronze badges

8

Tôi biết đây là một bài viết siêu cũ, nhưng tôi nghĩ những gì bị bỏ lỡ đang ghi đè

>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
6, do đó
>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
7, đó là câu trả lời được chấp nhận của câu hỏi này được đánh dấu trùng lặp.

Đã trả lời ngày 21 tháng 11 năm 2018 lúc 4:54Nov 21, 2018 at 4:54

NotanambiturnotanambiturnerNotAnAmbiTurner

2.2651 Huy hiệu vàng20 Huy hiệu bạc42 Huy hiệu đồng1 gold badge20 silver badges42 bronze badges

Một giải pháp khác là ghi đè toán tử tham gia của lớp STR.

Hãy để chúng tôi xác định một lớp mới My_String như sau

class my_string[str]:
    def join[self, l]:
        l_tmp = [str[x] for x in l]
        return super[my_string, self].join[l_tmp]

Sau đó, bạn có thể làm

class Obj:
    def __str__[self]:
        return 'name'

list = [Obj[], Obj[], Obj[]]
comma = my_string[',']

print comma.join[list]

Và bạn nhận được

name,name,name

BTW, bằng cách sử dụng danh sách làm tên biến, bạn đang xác định lại lớp danh sách [từ khóa]! Tốt nhất là sử dụng một tên định danh khác.list as variable name you are redefining the list class [keyword] ! Preferably use another identifier name.

Hy vọng bạn sẽ thấy câu trả lời của tôi hữu ích.

Đã trả lời ngày 15 tháng 8 năm 2018 lúc 11:41Aug 15, 2018 at 11:41

1

Sử dụng cú pháp [list [i] + list [i + 1] cho i trong phạm vi [0, len [danh sách] -1, 2]] để lặp qua mọi yếu tố khác trong danh sách và kết hợp nó với phần tử tiếp theo. Sau đó kiểm tra xem danh sách ban đầu có số phần tử lẻ không và thêm phần tử cuối cùng vào danh sách mới nếu vậy.

Phương thức tham gia [] làm gì trong Python?

text = ['Python', 'is', 'a', 'fun', 'programming', 'language']

# join elements of text with space print[' '.join[text]]

# Output: Python is a fun programming language

Phương thức tham gia [] lấy tất cả các mục trong một điều khác nhau và tham gia chúng thành một chuỗi. Một chuỗi phải được chỉ định là dấu phân cách.

Phương thức chuỗi

>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
8 trả về một chuỗi bằng cách tham gia tất cả các phần tử của một điều không thể điều chỉnh được [danh sách, chuỗi, tuple], được phân tách bởi dấu phân cách đã cho.

string.join[iterable]

Thí dụ

Cú pháp của chuỗi tham gia []

Cú pháp của phương thức

>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
8 là:

  • tham gia [] tham số
  • Phương thức
    >>> class Obj:
    ...     def __str__[self]:
    ...         return 'name'
    ...
    >>> list = [Obj[], Obj[], Obj[]]
    >>> ', '.join[list]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: sequence item 0: expected string, instance found
    
    8 lấy một số khác [các đối tượng có khả năng trả lại các thành viên của mình một lần] làm tham số của nó.

Một số ví dụ về Iterables là:: The

>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
8 method provides a flexible way to create strings from iterable objects. It joins each element of an iterable [such as list, string, and tuple] by a string separator [the string on which the
>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
8 method is called] and returns the concatenated string.

Các loại dữ liệu gốc - Danh sách, Tuple, Chuỗi, Từ điển và Set.

Phương thức

>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
8 trả về một chuỗi được tạo bằng cách nối các phần tử của một phân tách chuỗi đã cho.

Nếu có thể xác định được bất kỳ giá trị không chuỗi nào, nó sẽ tăng ngoại lệ

', '.join[[str[x] for x in list]]  # list comprehension
', '.join[str[x] for x in list]    # generator expression
6.

Ví dụ 1: Hoạt động của phương thức tham gia []

# .join[] with lists
numList = ['1', '2', '3', '4']
separator = ', '

print[separator.join[numList]]

# .join[] with tuples numTuple = ['1', '2', '3', '4']

print[separator.join[numTuple]]

s1 = 'abc' s2 = '123' # each element of s2 is separated by s1 # '1'+ 'abc'+ '2'+ 'abc'+ '3'

print['s1.join[s2]:', s1.join[s2]]

# each element of s1 is separated by s2 # 'a'+ '123'+ 'b'+ '123'+ 'b'

print['s2.join[s1]:', s2.join[s1]]

Đầu ra

>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
0

Ví dụ 2: Phương thức tham gia [] với các bộ

>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
1

Đầu ra

>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
2

Ví dụ 2: Phương thức tham gia [] với các bộ A set is an unordered collection of items, so you may get different output [order is random].

Lưu ý: Một bộ là một bộ sưu tập các mục không có thứ tự, vì vậy bạn có thể nhận được đầu ra khác nhau [thứ tự là ngẫu nhiên].

>>> class Obj:
...     def __str__[self]:
...         return 'name'
...
>>> list = [Obj[], Obj[], Obj[]]
>>> ', '.join[list]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: sequence item 0: expected string, instance found
3

Đầu ra

Ví dụ 2: Phương thức tham gia [] với các bộ

Lưu ý: Một bộ là một bộ sưu tập các mục không có thứ tự, vì vậy bạn có thể nhận được đầu ra khác nhau [thứ tự là ngẫu nhiên].

Ví dụ 3: Phương thức tham gia [] với từ điển: If the key of the string is not a string, it raises the

', '.join[[str[x] for x in list]]  # list comprehension
', '.join[str[x] for x in list]    # generator expression
6 exception.

Làm thế nào để bạn kết hợp danh sách trong danh sách Python?

Sử dụng hàm SUM [] để kết hợp danh sách lồng nhau vào một danh sách duy nhất bằng cách chuyển một danh sách trống như một đối số thứ hai cho nó..

Chúng ta có thể tham gia danh sách trong Python không?

Có một số cách để tham gia, hoặc concatenate, hai hoặc nhiều danh sách trong Python.Một trong những cách dễ nhất là sử dụng toán tử +.One of the easiest ways are by using the + operator.

Làm cách nào để tham gia hai yếu tố trong danh sách Python?

Sử dụng cú pháp [list [i] + list [i + 1] cho i trong phạm vi [0, len [danh sách] -1, 2]] để lặp qua mọi yếu tố khác trong danh sách và kết hợp nó với phần tử tiếp theo.Sau đó kiểm tra xem danh sách ban đầu có số phần tử lẻ không và thêm phần tử cuối cùng vào danh sách mới nếu vậy.[list[i] + list[i+1] for i in range[0, len[list]-1, 2]] to loop through every other element in the list and combine it with the next element. Then check if the original list has an odd number of elements, and add the last element to the new list if so.

Phương thức tham gia [] làm gì trong Python?

Phương thức tham gia [] lấy tất cả các mục trong một điều khác nhau và tham gia chúng thành một chuỗi.Một chuỗi phải được chỉ định là dấu phân cách.takes all items in an iterable and joins them into one string. A string must be specified as the separator.

Bài Viết Liên Quan

Chủ Đề