Re: [问题] 新手list问题请教

楼主: cutekid (可爱小孩子)   2018-09-26 10:44:23
def increment(self):
num = int(''.join(str(x) for x in self))
num = num + 1
numList = list(str(num).zfill(len(self)))
return [int(x) for x in numList]
print(increment([0,9,9,9]))
参考:
1. How to convert list to string [duplicate]
https://bit.ly/2xz7uSj
2. Nicest way to pad zeroes to a string
https://bit.ly/2IidRxs
3. how do I convert a string to a list
https://bit.ly/2OQShTf
※ 引述《chinsun ()》之铭言:
: 大家好,我目前在国外求学,算是程式新手
: 班上一个人都不认识,助教的口音也几乎听不懂QQ
: 只好拿作业上来问
: 题目是要写一个increment的方法,输入和输出的型态都要是list
: 例子:
: z=[0,9,9,9]
: z.increment()
: 我目前写的:
: def increment(self):
: zadd=self.amount
: a=zadd
: while '9' in a:
: a.remove('9')
: if a==[]:
: zadd=['0',zadd] #如果阵列里全是9,在最前面加0
: i=len(zadd)
: while i!=0:
: if zadd[i-1]=='9' :
: zadd[i-1]='0' #一项一项将9转为0
: i-=1
: else:
: zadd[i-1]+=1 #非9的话加1
: return zadd
: 将9转为0那边没有问题
: 但当阵列全为9,在最前面加入0那边
: 不知道为什么zadd其中的9也跟着a被remove掉
: 举个例子,如果输入['0','9','9','9'],a会变成['0'],但zadd也会一起变成['0']
: 但我以为zadd应该还是原本的样子
: 第二个问题是else里+1那边,请问要怎么做才能让list中的东西进行运算呢
: 我试过将他转成string,但还是显示must str not int
: 感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com