Hướng dẫn python f-string list comprehension - khả năng hiểu danh sách chuỗi f của python

Tôi có một danh sách những chiếc phao mà tôi muốn in bằng cách sử dụng chuỗi F: Đây là danh sách

er=[0.3401126304419511,
 0.32561695086083536,
 0.3115512789515306,
 0.21734184387097139,
 0.22354269408531188]

Và tôi muốn in chúng bằng cách sử dụng chuỗi F như sau:

print(f'{err}')

sản xuất:

[0.3401126304419511, 0.32561695086083536, 0.3115512789515306, 0.21734184387097139, 0.22354269408531188]

Nhưng những điều sau đây không hoạt động:

print(f'{err:.2}')
 Traceback (most recent call last):   
    File "C:\IPython\core\interactiveshell.py", line 3325, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)   
    File "<ipython-input-166-bbcdc82a9939>", line 1, in <module>
        print(f'{err:.2}') 
    TypeError: unsupported format string passed to list.__format__

Đây có phải là một lỗi hoặc một tính năng? Làm thế nào để tôi làm cho công việc này?

Tôi đang sử dụng phiên bản Python:

print(f'{err}')
2

Chuỗi định dạng trong danh sách hiểu trong Python #

Để sử dụng định dạng chuỗi trong một danh sách hiểu:

  1. Sử dụng danh sách hiểu để lặp lại trong danh sách.
  2. Sử dụng một chuỗi được định dạng theo nghĩa đen để định dạng từng mục trong danh sách.
  3. Danh sách mới sẽ chứa các chuỗi được định dạng.

Copied!

my_list = [2, 4, 6] # ✅ string formatting in a list comprehension result = [f'num: {item}' for item in my_list] print(result) # 👉️ ['num: 2', 'num: 4', 'num: 6'] # --------------------------------------- # ✅ join the items in a list with a separator result = ','.join(str(item) for item in my_list) print(result) # 👉️ 2,4,6 # --------------------------------------- # ✅ string formatting using str.format() result = '{},{},{}'.format(*my_list) print(result) # 👉️ 2,4,6 # --------------------------------------- # ✅ string formatting with a list of lists or list of tuples my_list = [[1, 2], [3, 4], [5, 6]] result = ' '.join( f'coords={",".join(str(item) for item in sublist)}' for sublist in my_list) print(result) # 👉️ coords=1,2 coords=3,4 coords=5,6

Ví dụ đầu tiên sử dụng chuỗi F để định dạng các chuỗi trong danh sách.

Copied!

my_list = [2, 4, 6] result = [f'num: {item}' for item in my_list] print(result) # 👉️ ['num: 2', 'num: 4', 'num: 6']

Chúng tôi đã sử dụng một danh sách hiểu để lặp lại trong danh sách.

Danh sách các hệ thống được sử dụng để thực hiện một số hoạt động cho mọi yếu tố hoặc chọn một tập hợp con của các phần tử đáp ứng một điều kiện.

Trên mỗi lần lặp, chúng tôi sử dụng một chuỗi được định dạng để định dạng mục hiện tại.

Các chuỗi chữ được định dạng (F-Strings) Hãy cho chúng tôi bao gồm các biểu thức bên trong chuỗi bằng cách tiền tố chuỗi với

print(f'{err}')
3.

Copied!

my_str = 'is subscribed:' my_bool = True result = f'{my_str} {my_bool}' print(result) # 👉️ is subscribed: True

Hãy chắc chắn để bọc các biểu thức trong niềng răng xoăn -

print(f'{err}')
4.

Nếu bạn cần tham gia các mục trong một danh sách với bộ phân cách, hãy sử dụng phương thức

print(f'{err}')
5.

Copied!

my_list = [2, 4, 6] result = ','.join(str(item) for item in my_list) print(result) # 👉️ 2,4,6

Nếu bạn có một danh sách các chuỗi, bạn có thể chuyển danh sách trực tiếp cho phương thức

print(f'{err}')
5.

Copied!

my_list = ['a', 'b', 'c'] result = ','.join(my_list) print(result) # 👉️ 'a,b,c'

Phương thức str.join lấy một điều đáng tin cậy như một đối số và trả về một chuỗi là sự kết hợp của các chuỗi trong điều kiện có thể sử dụng được.

Lưu ý rằng phương pháp này sẽ tăng

print(f'{err}')
7 nếu có bất kỳ giá trị không chuỗi nào trong ITEBLEBLE.

Chuỗi phương thức được gọi là bật được sử dụng làm phân tách giữa các phần tử.

Nếu bạn có một danh sách các danh sách hoặc danh sách các bộ dữ liệu, hãy sử dụng 2 cuộc gọi cho phương thức

print(f'{err}')
5.

print(f'{err}')
0

Nếu những người phụ của bạn chứa chuỗi, hoạt động đơn giản hơn một chút.

print(f'{err}')
1

Đảm bảo xen kẽ giữa các trích dẫn đơn và đôi để tránh chấm dứt chuỗi F sớm.

Cuộc gọi lồng nhau cho phương thức

print(f'{err}')
9 tham gia các mục trong mỗi tua lại với một dấu phân cách dấu phẩy.

Các mục trong đối tượng Trình tạo sau đó được nối thành một chuỗi với một dải phân cách không gian.

Bạn có thể thay đổi các dấu phân cách và nội dung của chuỗi F tùy thuộc vào trường hợp sử dụng của bạn.