de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
Evan Fosmark
Evan Fosmark
Question

Dlaczego jest to string.join(lista) zamiast list.join(string)?

To zawsze mnie dezorientowało. Wydaje się, że tak byłoby ładniej:

my_list = ["Hello", "world"]
print(my_list.join("-"))
# Produce: "Hello-world"

niż to:

my_list = ["Hello", "world"]
print("-".join(my_list))
# Produce: "Hello-world"

Czy jest jakiś konkretny powód, dla którego tak się dzieje?

1661 2009-01-29T22:45:13+00:00 3
 philipxy
philipxy
Edytowane pytanie 23. września 2019 в 5:59
Programowanie
python
string
list
Popular videos
Flutter : Upload file / pdf / audio in your app | multipart request | flutter coding
Flutter : Upload file / pdf / audio in your app | multipart request | flutter coding
8 miesięcy temu
Python - 10 trików, które powinieneś znać
Python - 10 trików, które powinieneś znać
5 miesięcy temu
The Great Gildersleeve: Gildy's Radio Broadcast / Gildy's New Secretary / Anniversary Dinner
The Great Gildersleeve: Gildy's Radio Broadcast / Gildy's New Secretary / Anniversary Dinner
9 lat temu
Python Blender 2.8 Tutorial: Creating the Text Tool Add-on [learn python for beginners]
Python Blender 2.8 Tutorial: Creating the Text Tool Add-on [learn python for beginners]
2 lata temu
3. Kurs SQL - LIMIT, DISTINCT oraz CONCAT
3. Kurs SQL - LIMIT, DISTINCT oraz CONCAT
2 lata temu
Spring Boot Tutorial using JDBC + Connection Pool + Flyway + JDBC Template + SQL and Docker 😲
Spring Boot Tutorial using JDBC + Connection Pool + Flyway + JDBC Template + SQL and Docker 😲
8 miesięcy temu
Power Query To Add Numbers To CSV Data - Dueling Excel 193
Power Query To Add Numbers To CSV Data - Dueling Excel 193
1 rok temu
PYTHON : Why is it string.join(list) instead of list.join(string)?
PYTHON : Why is it string.join(list) instead of list.join(string)?
5 miesięcy temu
string.join(list) vs list.join(string) | Why Python’s Creators Chose The Former
string.join(list) vs list.join(string) | Why Python’s Creators Chose The Former
1 rok temu
python - Why is it string.join(list) instead of list.join(string)?
python - Why is it string.join(list) instead of list.join(string)?
7 miesięcy temu
f-string, łączenie tekstu - konkatenacja
f-string, łączenie tekstu - konkatenacja
5 miesięcy temu
MyTodoApp - Lista zadań zintegrowana z kalendarzem w SwiftUI
MyTodoApp - Lista zadań zintegrowana z kalendarzem w SwiftUI
1 rok temu
PARSE LIST OF LISTS OF DICTIONARIES USING PYTHON | JSON | NESTED LISTS
PARSE LIST OF LISTS OF DICTIONARIES USING PYTHON | JSON | NESTED LISTS
1 rok temu
921-RO_IT Camelia, GALAXY - Hipnoza Ezoterică ∞ Lucio Carsi
921-RO_IT Camelia, GALAXY - Hipnoza Ezoterică ∞ Lucio Carsi
8 miesięcy temu
[PHP] API - GET, POST, PATCH/PUT, DELETE - To Do List #2
[PHP] API - GET, POST, PATCH/PUT, DELETE - To Do List #2
1 rok temu
Old Rusted PlayStation 2 Fat Restoration | Retro Repair Guy Episode 17
Old Rusted PlayStation 2 Fat Restoration | Retro Repair Guy Episode 17
8 miesięcy temu
Surprising: Split Outlook Distribution List In Excel - 2282
Surprising: Split Outlook Distribution List In Excel - 2282
2 lata temu
Redis for dummies - jak się nie narobić, a zrobić, żeby fajne działało?
Redis for dummies - jak się nie narobić, a zrobić, żeby fajne działało?
7 miesięcy temu
« Poprzedni
Następny »
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
Solution / Answer
 recursive
recursive
29. stycznia 2009 в 10:51
2009-01-29T22:51:18+00:00
Więcej
Źródło
Edytuj
#8783916

Dzieje się tak dlatego, że każda iterowalna może być połączona, nie tylko listy, ale wynik i "joiner" są zawsze łańcuchami.

Na przykład:

import urllib2
print('\n############\n'.join(
    urllib2.urlopen('http://data.stackexchange.com/users/7095')))
 Boris
Boris
Edytowana odpowiedź 23. września 2019 в 3:44
1208
0
Bill Karwin
Bill Karwin
29. stycznia 2009 в 10:48
2009-01-29T22:48:38+00:00
Więcej
Źródło
Edytuj
#8783915

Ponieważ metoda join() jest w klasie string, a nie w klasie list?

Zgadzam się, że wygląda to zabawnie.

Zobacz http://www.faqs.org/docs/diveintopython/odbchelper_join.html:

Historyczna notatka. Kiedy po raz pierwszy nauczyłem się Pythona, spodziewałem się, że join będzie metodą listy, która będzie przyjmować delimiter jako argument. Mnóstwo ludzi czuje to samo, i jest historia kryjąca się za metodą join. Przed do Pythona 1.6, łańcuchy nie miały wszystkich tych użytecznych metod. Istniał oddzielny moduł string, który zawierał wszystkie funkcje łańcuchowe; każda z nich funkcja przyjmowała ciąg znaków jako swój pierwszy argument. Funkcje te zostały uznane za wystarczająco ważne, aby umieścić je na same ciągi, co miało sens dla funkcji takich jak lower, upper, i split. Ale wielu zatwardziałych programistów Pythona programistów sprzeciwiało się nowej metodzie join argumentując, że powinna to być metoda metoda listy zamiast tego, lub że nie powinna się w ogóle ruszać, ale po prostu pozostać częścią starego modułu string (który wciąż ma w sobie wiele przydatnych rzeczy). Używam wyłącznie nowej metody join, ale zobaczysz kod napisany w dowolny sposób, a jeśli naprawdę ci to przeszkadza, możesz możesz użyć starej funkcji string.join zamiast tego.

--- Mark Pilgrim, Dive into Python

Brian Burns
Brian Burns
Edytowana odpowiedź 30. października 2017 в 5:11
248
0
 S.Lott
S.Lott
29. stycznia 2009 в 10:51
2009-01-29T22:51:45+00:00
Więcej
Źródło
Edytuj
#8783917

Przede wszystkim dlatego, że wynik someString.join() jest ciągiem znaków.

Sekwencja (lista lub tuple lub cokolwiek innego) nie pojawia się w wyniku, tylko ciąg. Ponieważ wynik jest ciągiem, ma to sens jako metoda ciągu.

13
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
Jasur Fozilov
Zarejestrowany 8 godzin temu
2
Zuxriddin Muydinov
Zarejestrowany 23 godziny temu
3
Денис Анненский
Zarejestrowany 3 dni temu
4
365
Zarejestrowany 1 tydzień temu
5
True Image
Zarejestrowany 1 tydzień temu
BG
DA
DE
EL
ES
FR
HU
ID
IT
JA
KO
NL
PL
PT
RU
SL
TR
ZH
© de-vraag 2022
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem