我刚开始在大学学习python,我对这个练习有问题: 基本上我必须采取整数列表,例如[10,2,2013,11,2,2014,5,23,2015],将必要的元素转换为字符串形成日期,如['1022013' ,1122014,5232015]然后在字符串之间放一个/所以我有['10 / 2/2013','11 / 22/2014','2015年5月23日']。它需要是一个函数,并且列表的长度假定为3的倍数。我该怎么做呢? 我写这段代码开始:
def convert(lst):
...: for element in lst:
...: result = str(element)
...: return result
...:
但是从列表[1,2,3]只返回'1'。
答案 0 :(得分:1)
要将您的列表拆分为3个大小,请使用range
,step
为3
for i in range(0, len(l), 3):
print(l[i:i+3])
使用/
加入片段就像
'/'.join([str(x) for x in l[i:i+3]])
将它们拼凑成一个函数:
def make_times(l):
results = []
for i in range(0, len(l), 3):
results.append('/'.join([str(x) for x in l[i:i+3]]))
return results
答案 1 :(得分:1)
testList = [10,2,2013,11,2,2014,5,23,2015]
def convert(inputList):
tempList = []
for i in range (0, len(inputList), 3): #Repeats every 3 elements
newDate = str(inputList[i])+"/"+str(inputList[i+1])+"/"+str(inputList[i+2]) #Joins everything together
tempList.append(newDate)
return tempList
print(convert(testList))
Saswata sux
答案 2 :(得分:0)
使用datetime
提取日期,并使用strftime
对其进行格式化:
from datetime import datetime
dates = [10,2,2013,11,2,2014,5,23,2015]
for i in range(0, len(dates), 3):
d = datetime(dates[i+2], dates[i], dates[i+1])
print(d.strftime("%m/%d/%y"))
<强>输出强>
10/02/13
11/02/14
05/23/15
答案 3 :(得分:0)
这样的事情会起作用:
def convert(lst):
string = ''
new_lst = []
for x in lst:
if len(str(x)) < 4:
string += str(x)+'/'
else:
string += str(x)
new_lst.append(string)
string = ''
return(new_lst)
lst = [10,2,2013,11,2,2014,5,23,2015]
lst = convert(lst)
print(lst)
#output
['10/2/2013', '11/2/2014', '5/23/2015']
因此,创建一个占位符字符串和一个新列表。然后循环遍历列表中的每个元素。如果元素不是一年,则将其添加到带有“/”的字符串中。如果是一年,请将字符串添加到新列表中并清除字符串。