Wie könnte ich einen String wie 'aaaaaaaaaaaaaaaaaaaaaaa'
in 4er-Tupel aufteilen, z.B. in (aaaa
, aaaa
, aaaa
)?
Antworten
Zu viele Anzeigen?
Arindam Roychowdhury
Punkte
4759
miragessee
Punkte
311
Ich denke, diese Methode ist einfacher. Aber die Nachrichtenlänge muss mit split_size aufgeteilt werden. Oder Buchstaben müssen zur Nachricht hinzugefügt werden. Beispiel: message = "lorem ipsum_", dann kann der hinzugefügte Buchstabe gelöscht werden.
message = "lorem ipsum"
array = []
temp = ""
split_size = 3
for i in range(1, len(message) + 1):
temp += message[i - 1]
if i % split_size == 0:
array.append(temp)
temp = ""
print(array)
Output: ['lor', 'em ', 'ips']
BPL
Punkte
9522
Hier ist eine weitere mögliche Lösung für das gegebene Problem:
def split_by_length(text, width):
width = max(1, width)
chunk = ""
for v in text:
chunk += v
if len(chunk) == width:
yield chunk
chunk = ""
if chunk:
yield chunk
if __name__ == '__main__':
x = "123456789"
for i in range(20):
print(i, list(split_by_length(x, i)))
Ausgabe:
0 ['1', '2', '3', '4', '5', '6', '7', '8', '9']
1 ['1', '2', '3', '4', '5', '6', '7', '8', '9']
2 ['12', '34', '56', '78', '9']
3 ['123', '456', '789']
4 ['1234', '5678', '9']
5 ['12345', '6789']
6 ['123456', '789']
7 ['1234567', '89']
8 ['12345678', '9']
9 ['123456789']
10 ['123456789']
11 ['123456789']
12 ['123456789']
13 ['123456789']
14 ['123456789']
15 ['123456789']
16 ['123456789']
17 ['123456789']
18 ['123456789']
19 ['123456789']
CodeNewbie
Punkte
53
Der kindische Weg
def wrap(string, max_width):
i=0
strings = []
s = ""
for x in string:
i+=1
if i == max_width:
s = s + x
strings.append(s)
s = ""
i = 0
else:
s = s + x
strings.append(s)
return strings
wrap('ABCDEFGHIJKLIMNOQRSTUVWXYZ',4)
# output: ['ABCD', 'EFGH', 'IJKL', 'IMNO', 'QRST', 'UVWX', 'YZ']
Michael Provenzano
Punkte
1
Diese Funktion verwendet Rekursion.
s = 'dasffvvcsadcadscsdsdcsadssdfsdfsdfdfs'
delimiter = 5
def reccursive_split(data, delimiter, current_list = []):
if len(data) > delimiter:
current_list.append(data[:delimiter])
return reccursive_split(data[delimiter:], delimiter, current_list)
else:
current_list.append(data)
return current_list
print(reccursive_split(s, delimiter))
- See previous answers
- Weitere Antworten anzeigen