python分割数组
‘壹’ python 数组分割
arr=[1,2,3,6,1,6,8,1,9,7,5,1]
coor,res=[],[]
i=j=count=0
foridx,numinenumerate(arr):
ifnum==1:
ifi==j:
i=idx
else:
ifi<j:
i=idx
else:
j=idx
coor.append((i,j)ifi<jelse(j,i))
forcrinsorted(set(coor)-{(0,0)}):
res.append(arr[cr[0]:cr[1]+1])
print(res)
如果你用的Python2就把最后的print的括号去掉就行,Python3的话就不用
用另外一种方法弄了一下,可能更直观些,附上如下
arr=[1,2,3,6,1,6,8,1,9,7,5,1]
coor,res=[],[]
i=j=0
idx=1
whileidx<len(arr):
whilearr[idx]!=1:
idx+=1
ifi==j:
i=idx
else:
ifi<j:
i=idx
else:
j=idx
idx+=1
coor.append((i,j)ifi<jelse(j,i))
forcrincoor:
res.append(arr[cr[0]:cr[1]+1])
print(res)
你随便选一种就好,不过推荐后面的这种
‘贰’ Python用什么方法可以将换行符分割成多行
import pandas as pd
import xlsxwriter
if __name__ == "__main__":
file_name = r'C:UsersAdministratorDesktop est.xlsx'
""" 读取,切割成数组 """
context = pd.read_excel(file_name)
num = context['序号'][0]
value = context['名称'][0]
new_num = num.split(' ')
new_value = value.split(' ')
""" 写入数据 """
workbook = xlsxwriter.Workbook(file_name)
# 创建工作表
worksheet = workbook.add_worksheet('sheet1')
# 写单元格
worksheet.write(0, 0, '序号')
worksheet.write(0, 1, '名称')
# 写列,其中列需要大写
worksheet.write_column('A2', new_num)
worksheet.write_column('B2', new_value)
# 关闭工作簿
workbook.close()
###顺便给一下你学习的链接吧,这个其实就是个简单的读写文件的应用而已,网页链接
‘叁’ python数组分割
functionname= lambda anylist, n: [anylist[i * 3:(i + 1) * 3] for i in range(len(anylist)//n+1 if len(anylist)%n else len(anylist)//n)]
print(functionname(a, 3))
可以按任意长度切分
‘肆’ python 如何以逗号为分隔符输出数组
方法一:
def count_pos(l): num = 0 for x in l: # 直接遍历数组就可以了,加了range反而错了。 if x > 0: num += 1 print(num) s = input('input some number: ')l = eval(s) # 因为不会修改数列的内容,所以用tuple就可以,没必要转成listcount_pos(l)
方法二:
s = input('input some number: ')l = eval(s)print(count([x for x in l if x > 0])) # 一句话搞定,没必要写函数
‘伍’ python中array的c.shape=-1
-1的意思是没有指定,而是根据另一个维度指定的数量进行分割。比如一个10*10的array,[2, -1]就是说两行,列数是10*10/2
‘陆’ python 能否将字典里面 value 是数组的值 切分每个键一个数组里面一个值的形式
a=[{"fild":{"SSMC":["a","b","c","d"]}}]
printa
b=[{"fild":{k:i}}fork,vina[0]["fild"].items()foriinv]
printb