Vì vậy, tôi biết chuỗi Python là bất biến, nhưng tôi có một chuỗi:
c['date'] = "20110104"
Mà tôi muốn chuyển đổi thành
c['date'] = "2011-01-04"
Mã của tôi:
c['date'] = c['date'][0:4] + "-" + c['date'][4:6] + "-" + c['date'][6:]
Có vẻ hơi phức tạp, không? Sẽ tốt nhất để lưu nó như một biến riêng biệt và sau đó làm như vậy? Hoặc về cơ bản sẽ không có sự khác biệt?
hỏi ngày 17 tháng 1 năm 2013 lúc 20:55Jan 17, 2013 at 20:55
Bạn có thể sử dụng
c['date'] = "2011-01-04"
1 để làm sạch nó một chút:d = c['date']
'-'.join[[d[:4], d[4:6], d[6:]]]
Đã trả lời ngày 17 tháng 1 năm 2013 lúc 20:59Jan 17, 2013 at 20:59
3
Ngày là các đối tượng hạng nhất trong Python, với giao diện phong phú để thao túng chúng. Thư viện là DateTime.
> import datetime
> datetime.datetime.strptime['20110503','%Y%m%d'].date[].isoformat[]
'2011-05-03'
Đừng phát minh lại bánh xe!
Đã trả lời ngày 17 tháng 1 năm 2013 lúc 22:51Jan 17, 2013 at 22:51
Đại tá Paniccolonel hoảng loạnColonel Panic
129K83 Huy hiệu vàng389 Huy hiệu bạc457 Huy hiệu Đồng83 gold badges389 silver badges457 bronze badges
1
Bạn nên sử dụng định dạng chuỗi hơn là nối chuỗi
c['date'] = '{}-{}-{}'.format[c['date'][0:4], c['date'][4:6], c['date'][6:]]
Sự kết hợp chuỗi thường chậm hơn vì như bạn đã nói ở trên là bất biến.
Đã trả lời ngày 17 tháng 1 năm 2013 lúc 20:59Jan 17, 2013 at 20:59
Ngày là các đối tượng hạng nhất trong Python, với giao diện phong phú để thao túng chúng. Thư viện là DateTime.GWW
Đừng phát minh lại bánh xe!11 gold badges110 silver badges107 bronze badges
s = '20110104'
def option_1[]:
return '-'.join[[s[:4], s[4:6], s[6:]]]
def option_1a[]:
return '-'.join[[s[:4], s[4:6], s[6:]]]
def option_2[]:
return '{}-{}-{}'.format[s[:4], s[4:6], s[6:]]
def option_3[]:
return '%s-%s-%s' % [s[:4], s[4:6], s[6:]]
def option_original[]:
return s[:4] + "-" + s[4:6] + "-" + s[6:]
Đã trả lời ngày 17 tháng 1 năm 2013 lúc 22:51
- Đại tá Paniccolonel hoảng loạn
- 129K83 Huy hiệu vàng389 Huy hiệu bạc457 Huy hiệu Đồng
- Bạn nên sử dụng định dạng chuỗi hơn là nối chuỗi
- Sự kết hợp chuỗi thường chậm hơn vì như bạn đã nói ở trên là bất biến.
- GWWGWW
42.1k11 Huy hiệu vàng110 Huy hiệu bạc107 Huy hiệu đồng
Chạy
c['date'] = "2011-01-04"
2 trên mỗi mang lại những kết quả nàyJan 17, 2013 at 21:06
Tùy chọn_1: 35,9 ns mỗi vòngRob Cowie
Tùy chọn_1a: 35,8 ns mỗi vòng6 gold badges61 silver badges56 bronze badges
0
Tùy chọn_2: 36 ns mỗi vòng lặp
d = c['date']
c['date'] = '%s-%s-%s' % [d[:4], d[4:6], d[6:]]
Tùy chọn_3: 35,8 ns mỗi vòng
Đã trả lời ngày 17 tháng 1 năm 2013 lúc 20:59Jan 17, 2013 at 20:59
g.d.d.cg.d.d.cg.d.d.c
Ngày là các đối tượng hạng nhất trong Python, với giao diện phong phú để thao túng chúng. Thư viện là DateTime.8 gold badges99 silver badges110 bronze badges
Đừng phát minh lại bánh xe!
import re
c['date']=re.sub[r'.*[\w{4}][\w{2}][\w{2}].*',r"\1-\2-\3",c['date']]
Đã trả lời ngày 17 tháng 1 năm 2013 lúc 22:51Jan 17, 2013 at 22:03
Đại tá Paniccolonel hoảng loạn
from datetime import datetime
result = datetime.strptime[c['date'], '%Y%m%d']
print result.date[].isoformat[]
129K83 Huy hiệu vàng389 Huy hiệu bạc457 Huy hiệu Đồng
Bạn nên sử dụng định dạng chuỗi hơn là nối chuỗi
Sự kết hợp chuỗi thường chậm hơn vì như bạn đã nói ở trên là bất biến.Jan 17, 2013 at 23:09
user1613017user1613017user1613017
GWWGWW2 gold badges11 silver badges8 bronze badges
42.1k11 Huy hiệu vàng110 Huy hiệu bạc107 Huy hiệu đồng
Chạyc['date'] = "2011-01-04"
2 trên mỗi mang lại những kết quả nàyTùy chọn_1: 35,9 ns mỗi vòngMay 14, 2020 at 12:37