Là người mới đối với Python, điều này đã gây cho tôi một số rắc rối
Đưa ra một danh sách các số nguyên như
[2, 0, 0, 0, 0, 12, 0, 8]
Làm thế nào tôi có thể trích xuất các chữ số không phải của mỗi phần tử để tạo thành một danh sách mới
[2,1,2,8]
Tôi đã có ý tưởng lặp qua từng phần tử và sử dụng toán tử modulo nhưng tôi dường như không thể tìm thấy logic chính xác
Bất kỳ giúp đỡ được rất nhiều đánh giá cao
Roadrunner
25K6 Huy hiệu vàng36 Huy hiệu bạc72 Huy hiệu Đồng6 gold badges36 silver badges72 bronze badges
Khi được hỏi ngày 9 tháng 5 năm 2020 lúc 17:57May 9, 2020 at 17:57
2
Cách dễ nhất, tôi nghĩ, là chuyển đổi các giá trị thành chuỗi và trích xuất các ký tự riêng biệt và chuyển đổi chúng trở lại số nguyên.
Ví dụ:
lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
Prints:
[2, 1, 2, 8]
Đã trả lời ngày 9 tháng 5 năm 2020 lúc 18:24May 9, 2020 at 18:24
Andrej Keselyandrej KeselyAndrej Kesely
Phù bằng vàng 140K1414 gold badges41 silver badges86 bronze badges
0
Trước tiên, bạn có thể chuyển đổi tất cả các số thành danh sách các chuỗi, chuyển đổi từng chuỗi thành một số nguyên, sau đó làm phẳng kết quả bằng itertools.chain.from_iterable
:
>>> from itertools import chain
>>> lst = [2, 0, 0, 0, 0, 12, 0, 8]
>>> list[chain.from_iterable[map[int, str[x]] for x in lst if x != 0]]
[2, 1, 2, 8]
Đã trả lời ngày 9 tháng 5 năm 2020 lúc 19:51May 9, 2020 at 19:51
RoadrunnerRunnerRoadRunner
25K6 Huy hiệu vàng36 Huy hiệu bạc72 Huy hiệu Đồng6 gold badges36 silver badges72 bronze badges
Khi được hỏi ngày 9 tháng 5 năm 2020 lúc 17:57
Cách dễ nhất, tôi nghĩ, là chuyển đổi các giá trị thành chuỗi và trích xuất các ký tự riêng biệt và chuyển đổi chúng trở lại số nguyên.
Ví dụ:
myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
Đã trả lời ngày 9 tháng 5 năm 2020 lúc 18:24
Andrej Keselyandrej KeselyMay 10, 2020 at 14:40
Sử dụng một vòng lặp để lặp qua chuỗi ..
Sử dụng lớp int [] để chuyển đổi từng chuỗi con thành số nguyên và nối chúng vào danh sách ..
Làm cách nào để trích xuất các giá trị số trong Python?
Sử dụng một vòng lặp để lặp qua chuỗi ..
Sử dụng lớp int [] để chuyển đổi từng chuỗi con thành số nguyên và nối chúng vào danh sách ..
Làm cách nào để trích xuất các giá trị số trong Python?
Tóm tắt: Để trích xuất số từ một chuỗi đã cho trong Python, bạn có thể sử dụng một trong các phương thức sau:.
Sử dụng mô -đun Regex ..
Sử dụng các hàm split [] và append [] trong danh sách ..
Python3
[2,1,2,8]
0____11 [2,1,2,8]
2 [2,1,2,8]
3 [2,1,2,8]
4 [2,1,2,8]
5 [2,1,2,8]
6 [2,1,2,8]
7 [2,1,2,8]
1 [2,1,2,8]
9lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
0lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
1lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
2 lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
3 [2,1,2,8]
3lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
5lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
6 lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
7 [2,1,2,8]
5 lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
9[2, 1, 2, 8]
0Đầu ra: & nbsp;
The original string : g1eeks4geeks5 The digits string is : 145
& nbsp; Phương pháp #2: Sử dụng RE & NBSP;Method #2 : Using re
Các biểu thức thông thường cũng có thể được sử dụng để thực hiện nhiệm vụ cụ thể này. Chúng ta có thể xác định yêu cầu loại Digit, sử dụng \ D, và chỉ các chữ số được trích xuất từ chuỗi. & NBSP;
Python3
[2, 1, 2, 8]
1 [2, 1, 2, 8]
2 [2,1,2,8]
0____11 [2,1,2,8]
2 [2,1,2,8]
3 [2,1,2,8]
4 [2,1,2,8]
5 [2,1,2,8]
6 [2,1,2,8]
7 [2,1,2,8]
1 [2,1,2,8]
9lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
0lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
1lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
2 lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
3 [2,1,2,8]
3lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
5lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
6 lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
7 [2,1,2,8]
5 lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend[map[int, str[value]]]
print[digits]
9[2, 1, 2, 8]
0Đầu ra: & nbsp;
The original string : g1eeks4geeks5 The digits string is : 145
& nbsp; Phương pháp #2: Sử dụng RE & NBSP;
Các biểu thức thông thường cũng có thể được sử dụng để thực hiện nhiệm vụ cụ thể này. Chúng ta có thể xác định yêu cầu loại Digit, sử dụng \ D, và chỉ các chữ số được trích xuất từ chuỗi. & NBSP;
Python3
myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
0 [2,1,2,8]
1myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
2[2, 1, 2, 8]
1 [2, 1, 2, 8]
2myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
7myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
8myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
9The original string : g1eeks4geeks5 The digits string is : 1450
[2,1,2,8]
3The original string : g1eeks4geeks5 The digits string is : 1452
[2,1,2,8]
1The original string : g1eeks4geeks5 The digits string is : 1454
Output: The original string : g1eeks4geeks5 The digits string is : 145
7 [2,1,2,8]
1 [2,1,2,8]
2>>> from itertools import chain
>>> lst = [2, 0, 0, 0, 0, 12, 0, 8]
>>> list[chain.from_iterable[map[int, str[x]] for x in lst if x != 0]]
[2, 1, 2, 8]
Python3
Phương pháp 3: Sử dụng các vòng lặp:
The original string : g1eeks4geeks5 The digits string is : 1450
myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
8 The original string : g1eeks4geeks5 The digits string is : 1452
[2,1,2,8]
1 [2,1,2,8]
1____11555776The original string : g1eeks4geeks5 The digits string is : 1457
The original string : g1eeks4geeks5 The digits string is : 1458
The original string : g1eeks4geeks5 The digits string is : 1450
myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
8 Output: The original string : g1eeks4geeks5 The digits string is : 1451
The original string : g1eeks4geeks5 The digits string is : 1457
[2,1,2,8]
3Output: The original string : g1eeks4geeks5 The digits string is : 1454
[2,1,2,8]
1Output: The original string : g1eeks4geeks5 The digits string is : 1456
The original string : g1eeks4geeks5 The digits string is : 1450
The original string : g1eeks4geeks5 The digits string is : 1452
[2,1,2,8]
5 [2,1,2,8]
1itertools.chain.from_iterable
1The original string : g1eeks4geeks5 The digits string is : 1450
itertools.chain.from_iterable
3myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
0 [2,1,2,8]
1myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
2itertools.chain.from_iterable
7
Phương pháp 5: Sử dụng phương thức ord [] & nbsp;
Python3
myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
0 [2,1,2,8]
1myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
2myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
3 myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
4myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
5 myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append[i%10]
i = i//10
newList.append[i]
newList = [ x for x in newList if x != 0 ]
6Các
The original string : g1eeks4geeks5 The digits string is : 1457
[2,1,2,8]
3The original string : g1eeks4geeks5 The digits string is : 1452
[2,1,2,8]
1The original string : g1eeks4geeks5 The digits string is : 1454