Tôi có một số chuỗi chữ và số như thế này listOfNum = ['000231512-n','1209123100000-n00000','alphanumeric0000', '000alphanumeric']
Đầu ra mong muốn để loại bỏ các số 0 sẽ là:trailing zeros would be: listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
Đầu ra mong muốn cho các số không theo dõi hàng đầu sẽ là:leading trailing zeros would be: listOfNum = ['231512-n','1209123100000-n00000','alphanumeric0000', 'alphanumeric']
Đầu ra mong muốn để loại bỏ cả số không dẫn đầu và dấu vết sẽ là: listOfNum = ['231512-n','1209123100000-n', 'alphanumeric', 'alphanumeric']
Bây giờ tôi đã làm theo cách sau, xin vui lòng đề xuất một cách tốt hơn nếu có: listOfNum = ['000231512-n','1209123100000-n00000','alphanumeric0000', \
'000alphanumeric']
trailingremoved = []
leadingremoved = []
bothremoved = []
# Remove trailing
for i in listOfNum:
while i[-1] == "0":
i = i[:-1]
trailingremoved.append(i)
# Remove leading
for i in listOfNum:
while i[0] == "0":
i = i[1:]
leadingremoved.append(i)
# Remove both
for i in listOfNum:
while i[0] == "0":
i = i[1:]
while i[-1] == "0":
i = i[:-1]
bothremoved.append(i)
Loại bỏ các số không theo dấu vết từ thập phân trong Python #Để loại bỏ các số không kéo dài từ số thập phân: - Sử dụng phương thức
listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
0 để kiểm tra xem số có phần phân số không. - Nếu có, làm tròn số và trả lại.
- Nếu không, hãy sử dụng phương pháp
listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
1 để tước bất kỳ số không kéo dài nào.
Copied! from decimal import Decimal
num = Decimal('1.230000')
# ✅ drop trailing zeros from decimal, using normalize()
def remove_exponent(d):
return d.quantize(Decimal(1)) if d == d.to_integral() else d.normalize()
print(remove_exponent(num)) # 👉️ 1.23
# --------------------------------
# ✅ drop trailing zeros from decimal, using str.rstrip()
num_2 = Decimal('1.230000')
string = str(num_2)
without_trailing_zeros = string.rstrip(
'0').rstrip('.') if '.' in string else string
result = Decimal(without_trailing_zeros)
print(result) # 👉️ 1.23
Hàm đầu tiên được lấy từ phần Câu hỏi thường gặp về các tài liệu chính thức. Phương pháp TO_INTEGRAL làm tròn đến số nguyên gần nhất. Copied! from decimal import Decimal
# 👇️ True
print(Decimal('1.0000') == Decimal('1.0000').to_integral())
# 👇️ False
print(Decimal('1.9000') == Decimal('1.9000').to_integral())
print(Decimal('1.0000').to_integral()) # 👉️ 1
Nếu số không có phần thập phân, chúng tôi sử dụng phương pháp listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
2 để làm tròn đến một số vị trí thập phân cố định.Nếu số có phần thập phân, chúng tôi sử dụng phương pháp thập phân. Copied! from decimal import Decimal
print(Decimal('1.230000').normalize()) # 👉️ 1.23
print(Decimal('3.456000000').normalize()) # 👉️ 3.456
Chúng tôi chỉ sử dụng phương thức listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
3 nếu số có phần thập phân vì nó có thể loại bỏ số không ở bên trái của số thập phân.Copied! from decimal import Decimal
print(Decimal('500.000').normalize()) # 👉️ 5E+2
print(Decimal('510.100').normalize()) # 👉️ 510.1
Ngoài ra, bạn có thể sử dụng phương pháp listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
4.Để loại bỏ các số không kéo dài từ số thập phân: - Sử dụng phương thức
listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
0 để kiểm tra xem số có phần phân số không. - Nếu có, làm tròn số và trả lại.
Copied! from decimal import Decimal
num = Decimal('1.230000')
string = str(num)
without_trailing_zeros = string.rstrip(
'0').rstrip('.') if '.' in string else string
result = Decimal(without_trailing_zeros)
print(result) # 👉️ 1.23
Nếu không, hãy sử dụng phương pháp listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
1 để tước bất kỳ số không kéo dài nào.Hàm đầu tiên được lấy từ phần Câu hỏi thường gặp về các tài liệu chính thức. Phương pháp TO_INTEGRAL làm tròn đến số nguyên gần nhất. Ví dụ cũng kiểm tra xem chuỗi có chứa một dấu chấm hay không, vì vậy chúng tôi không cố gắng tước các số 0 từ các số không có phần thập phân, ví dụ: listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
8 đến listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
9. |