Hướng dẫn join in for loop python - tham gia vào trăn vòng lặp for

Tôi đang cố gắng tạo URL như sau:

http://ergast.com/api/f1/2000/qualifying?limit=10000

Tôi đang sử dụng Python để tạo URL cho các năm 2000 đến 2015, và kết thúc đó, đã viết đoạn mã này:

url = "http://ergast.com/api/f1/"
year = url.join([str(i) + "/qualifying?limit=10000" + "\n" for i in range(1999, 2016)])
print(year)

Đầu ra là:

1999/qualifying?limit=10000
http://ergast.com/api/f1/2000/qualifying?limit=10000
http://ergast.com/api/f1/2001/qualifying?limit=10000
http://ergast.com/api/f1/2002/qualifying?limit=10000
http://ergast.com/api/f1/2003/qualifying?limit=10000
http://ergast.com/api/f1/2004/qualifying?limit=10000
......
http://ergast.com/api/f1/2012/qualifying?limit=10000
http://ergast.com/api/f1/2013/qualifying?limit=10000
http://ergast.com/api/f1/2014/qualifying?limit=10000
http://ergast.com/api/f1/2015/qualifying?limit=10000

Làm thế nào để tôi thoát khỏi dòng đầu tiên? Tôi đã thử tạo ra phạm vi (2000, 2016), nhưng điều tương tự đã xảy ra với dòng đầu tiên là 2000 thay vì năm 1999. Tôi đang làm gì sai? Làm thế nào tôi có thể sửa lỗi này?

Hỏi ngày 13 tháng 4 năm 2016 lúc 9:09Apr 13, 2016 at 9:09

Hướng dẫn join in for loop python - tham gia vào trăn vòng lặp for

CodingIncirclesCodingIncirclesCodingInCircles

2.39510 Huy hiệu vàng57 Huy hiệu bạc84 Huy hiệu đồng10 gold badges57 silver badges84 bronze badges

Bạn có thể sử dụng định dạng chuỗi cho điều này:

url = 'http://ergast.com/api/f1/{0}/qualifying?limit=10000'

print('\n'.join(url.format(year) for year in range(2000, 2016)))

# http://ergast.com/api/f1/2000/qualifying?limit=10000
# http://ergast.com/api/f1/2001/qualifying?limit=10000
# ...
# http://ergast.com/api/f1/2015/qualifying?limit=10000

UPDATE:

Dựa trên nhận xét của OP để vượt qua các URL này trong requests.get:

url_tpl = 'http://ergast.com/api/f1/{0}/qualifying?limit=10000'

# use list coprehension to get all the urls
all_urls = [url_tpl.format(year) for year in range(2000, 2016)]

for url in all_urls:
    response = requests.get(url)

Đã trả lời ngày 13 tháng 4 năm 2016 lúc 9:14Apr 13, 2016 at 9:14

Hướng dẫn join in for loop python - tham gia vào trăn vòng lặp for

1

Thay vì sử dụng URL để tham gia chuỗi, hãy sử dụng danh sách hiểu để tạo các URL khác nhau.

>>> ["http://ergast.com/api/f1/%d/qualifying?limit=10000" % i for i in range(1999, 2016)]
['http://ergast.com/api/f1/1999/qualifying?limit=10000',
 'http://ergast.com/api/f1/2000/qualifying?limit=10000',
 ...
 'http://ergast.com/api/f1/2014/qualifying?limit=10000',
 'http://ergast.com/api/f1/2015/qualifying?limit=10000']

Sau đó, bạn vẫn có thể sử dụng '\n'.join(...) để tham gia tất cả những người đó vào một chuỗi lớn, nó thích.

Đã trả lời ngày 13 tháng 4 năm 2016 lúc 9:14Apr 13, 2016 at 9:14

tobias_ktobias_ktobias_k

Thay vì sử dụng URL để tham gia chuỗi, hãy sử dụng danh sách hiểu để tạo các URL khác nhau.11 gold badges116 silver badges177 bronze badges

Sau đó, bạn vẫn có thể sử dụng '\n'.join(...) để tham gia tất cả những người đó vào một chuỗi lớn, nó thích.

fmt = "http://ergast.com/api/f1/{y}/qualifying?limit=10000"
urls = [fmt.format(y=y) for y in range(2000, 1016)]

79,8K11 Huy hiệu vàng116 Huy hiệu bạc177 Huy hiệu đồng

Bạn có thể sử dụng định dạng chuỗi sạch hơn và mạnh hơn như sau,Apr 13, 2016 at 12:55

Trong mã của bạn, việc sử dụng str.join là đáng nghi ngờ vì nó có ngữ nghĩa khác với những gì bạn đang cố gắng thực hiện. s.join(ls), tham gia các mục của ____10

1999/qualifying?limit=10000
http://ergast.com/api/f1/2000/qualifying?limit=10000
http://ergast.com/api/f1/2001/qualifying?limit=10000
http://ergast.com/api/f1/2002/qualifying?limit=10000
http://ergast.com/api/f1/2003/qualifying?limit=10000
http://ergast.com/api/f1/2004/qualifying?limit=10000
......
http://ergast.com/api/f1/2012/qualifying?limit=10000
http://ergast.com/api/f1/2013/qualifying?limit=10000
http://ergast.com/api/f1/2014/qualifying?limit=10000
http://ergast.com/api/f1/2015/qualifying?limit=10000
1 bằng
1999/qualifying?limit=10000
http://ergast.com/api/f1/2000/qualifying?limit=10000
http://ergast.com/api/f1/2001/qualifying?limit=10000
http://ergast.com/api/f1/2002/qualifying?limit=10000
http://ergast.com/api/f1/2003/qualifying?limit=10000
http://ergast.com/api/f1/2004/qualifying?limit=10000
......
http://ergast.com/api/f1/2012/qualifying?limit=10000
http://ergast.com/api/f1/2013/qualifying?limit=10000
http://ergast.com/api/f1/2014/qualifying?limit=10000
http://ergast.com/api/f1/2015/qualifying?limit=10000
2
1999/qualifying?limit=10000
http://ergast.com/api/f1/2000/qualifying?limit=10000
http://ergast.com/api/f1/2001/qualifying?limit=10000
http://ergast.com/api/f1/2002/qualifying?limit=10000
http://ergast.com/api/f1/2003/qualifying?limit=10000
http://ergast.com/api/f1/2004/qualifying?limit=10000
......
http://ergast.com/api/f1/2012/qualifying?limit=10000
http://ergast.com/api/f1/2013/qualifying?limit=10000
http://ergast.com/api/f1/2014/qualifying?limit=10000
http://ergast.com/api/f1/2015/qualifying?limit=10000
3. Nếu
1999/qualifying?limit=10000
http://ergast.com/api/f1/2000/qualifying?limit=10000
http://ergast.com/api/f1/2001/qualifying?limit=10000
http://ergast.com/api/f1/2002/qualifying?limit=10000
http://ergast.com/api/f1/2003/qualifying?limit=10000
http://ergast.com/api/f1/2004/qualifying?limit=10000
......
http://ergast.com/api/f1/2012/qualifying?limit=10000
http://ergast.com/api/f1/2013/qualifying?limit=10000
http://ergast.com/api/f1/2014/qualifying?limit=10000
http://ergast.com/api/f1/2015/qualifying?limit=10000
4, nó sẽ trả về
1999/qualifying?limit=10000
http://ergast.com/api/f1/2000/qualifying?limit=10000
http://ergast.com/api/f1/2001/qualifying?limit=10000
http://ergast.com/api/f1/2002/qualifying?limit=10000
http://ergast.com/api/f1/2003/qualifying?limit=10000
http://ergast.com/api/f1/2004/qualifying?limit=10000
......
http://ergast.com/api/f1/2012/qualifying?limit=10000
http://ergast.com/api/f1/2013/qualifying?limit=10000
http://ergast.com/api/f1/2014/qualifying?limit=10000
http://ergast.com/api/f1/2015/qualifying?limit=10000
5C Panda

Đã trả lời ngày 13 tháng 4 năm 2016 lúc 12:552 gold badges10 silver badges11 bronze badges

2

C Pandac Panda

3.1372 Huy hiệu vàng10 Huy hiệu bạc11 Huy hiệu đồng

Thật tốt khi hiểu tại sao nó lại xảy ra. Vì điều đó bạn cần hiểu chức năng tham gia, hãy xem các tài liệu

Concatenate một danh sách hoặc tuple của các từ với các lần xuất hiện của SEP.

Điều đó có nghĩa là tham số URL của bạn sẽ được lặp lại giữa các từ bạn muốn kết nối, điều gì sẽ dẫn đến đầu ra ở trên, với phần tử đầu tiên không có URL. Những gì bạn muốn là không sử dụng tham gia, là để kết hợp các chuỗi như bạn đã làm trong năm.Apr 13, 2016 at 9:19

Hướng dẫn join in for loop python - tham gia vào trăn vòng lặp for

Vì vậy, bạn có thể sử dụng các phương pháp khác nhau, như đã được trả lời. Bạn có thể sử dụng định dạng chuỗi như được chỉ ra bởi @aks và nó sẽ hoạt động.dfranca

Đã trả lời ngày 13 tháng 4 năm 2016 lúc 9:192 gold badges31 silver badges58 bronze badges

Làm thế nào để bạn tham gia một vòng lặp trong Python?

Chương trình tham gia hai danh sách trong Python bằng cách sử dụng hàm LOOP và EXPEND ()..
List1 = [1, 2, 3, 4, 5] # khai báo list1 ..
List2 = [5, 6, 7, 8, 9, 10] # Declare list2 ..
In ("List1", list1).
In ("List2 đã cho", List2).
# Sử dụng cho vòng lặp để lặp lại từng yếu tố của LT1 đến L2 ..
Đối với tôi trong danh sách2:.

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ạn có thể sử dụng tham gia trên một danh sách python không?

Chúng ta có thể sử dụng hàm python chuỗi tham gia () để tham gia một danh sách các chuỗi.Hàm này lấy Itable làm đối số và danh sách là một liên quan, vì vậy chúng ta có thể sử dụng nó với danh sách.. This function takes iterable as argument and List is an interable, so we can use it with List.

Làm thế nào để bạn tham gia tất cả các yếu tố trong một danh sách trong Python?

Sử dụng phương thức tham gia () để kết hợp các mục trong danh sách vào một chuỗi.Jop () là một hàm chuỗi sẵn có trong python được sử dụng để nối các phần tử của chuỗi được phân tách bằng một dấu phân cách chuỗi.Hàm này tham gia các phần tử của một chuỗi và làm cho nó trở thành một chuỗi.. The join() is an inbuilt string function in Python used to join elements of the sequence separated by a string separator. This function joins elements of a sequence and makes it a string.