首页 > 编程语言 > 详细

有a1,a2,a3,a4,四个数组,四个数组重新组合成一个数组(A),间隔是10个元素

时间:2020-03-20 12:37:07      阅读:46      评论:0      收藏:0      [点我收藏+]

好久没折腾Py了,这是去年年初2019.3月发在Q中的一个记录,因不从事这个,并且被在工厂耽误10几年,所以很少写Blog在这里,感觉这里比较正式,而在Q中只是随意性的记载,

但发布图片总是需要另外再上传很不方便、耽误时间,cnblogs相对比较方便。

###============下面是Dephi群中别人的问题,我理解了一下问题描述如下,用PY实现====================
 ‘‘‘     FileName = D:\Py_eg\egArray-20190328.py
1)  对列表的操作(zip,chain,类型转换)
2)函数及装饰器的应用
---------------------------------------------------------------------------------------------------------------------------------------
请教一下,有a1,a2,a3,a4,四个数组,每个数组长度100,不一定是可用range(start,end,step)生成的数据,是这个意思
有A数组,长度400,
想取a1的1——10元素放到A的1——10
a2的1——10放到A的11——20,
a3的1——10放到A的20——30,
a4的1——10放到A的30——40,
就是四个数组重新组合成一个数组(A),间隔是10个元素

-------------------------------------------------------------------------------------------------------------------------------------

 1 print(**15,a1数组,**15)
 2 import string
 3 from random import randint
 4 #a1 = list(range(0,10,1))      ### a1 = [randint(0,100) for x in range(10)]
 5 a1 = list(randint(0,100) for x in range(10))  #改进版a1
 6 print(a1 = ,a1)
 7 ls1=[str(i) for i in a1]     ###此处转换成字符串的目的,只是假定要求的条件是字符串
 8 print(a1 = ,ls1)
 9 
10 print(**15,a2数组,**15)
11 #a2 = list(range(11,20,1))
12 a2 = list(randint(0,100) for x in range(10))  #改进版a2
13 print(a2 = ,a2)
14 ls2=[str(i) for i in a2]
15 print(a2 = ,ls2)
16 
17 
18 print(**15,a3数组,**15)
19 #a3 = list(range(0,10,1))
20 a3 = list(randint(0,100) for x in range(10))  #改进版a3
21 print(a3 = ,a3)
22 ls3=[str(i) for i in a3]
23 print(a3 = ,ls3)
24 
25 
26 print(**15,a4数组,**15)
27 #a4 = list(range(0,10,1))
28 a4 = list(randint(0,100) for x in range(10))  #改进版a4
29 print(a4 = ,a4)
30 ls4=[str(i) for i in a4]
31 print(a4 = ,ls4)
32 
33 
34 print(===== 方法 一,练习水平1 =====)
35 a1.extend(a2)  ###怎样能做到这种形式/但不用itertools.chain形式,当然后面写法是不对的((a1.extend(a2)).extend(a3)).extend(a4) 
36 a1.extend(a3)
37 a1.extend(a4)
38 print(A_Combine = ,a1)
39 # def enumerate_A():
40 #  for i,value4 in enumerate(A_combine):
41 #   print(‘A = ‘ +str(A_combine))
42 # enumerate_A()
43 
44 print(===== 方法 二,练习水平2, 方法Ok =====)
45 import itertools
46 A_After_Combine_2 = []
47 for j in itertools.chain(ls1,ls2,ls3,ls4):
48     A_After_Combine_2.append(j)
49 print(A_After_Combine_2)
50 
51 
52 
53 print(===== 方法 三 ,重复的、低劣=====)
54 print(=====a1函数形式=====)
55 def enumerate_fn_a1():
56  a1 = list(range(1,11,1))
57  for i,value1 in enumerate(ls1):     ###思考:  此处需将4个列表的value一起迭代 (zip可成字典迭代,itertools.chain()可成链接)
58   #print(‘索引:‘ + str(i), ‘值 = ‘ +str(value))
59   print(A + str([i+1]),  =  +str(value1))
60 enumerate_fn_a1()
61 
62 print(=====a2函数形式=====)
63 def enumerate_fn_a2():
64  a2 = list(range(11,21,1))
65  for i,value2 in enumerate(ls2):
66   #print(‘索引:‘ + str(i), ‘值 = ‘ +str(value))
67   print(A + str([i+11]),  =  +str(value2))
68 enumerate_fn_a2()
69 
70 print(=====a3函数形式=====)
71 def enumerate_fn_a3():
72  a3 = list(range(21,31,1))
73  for i,value3 in enumerate(ls3):
74   #print(‘索引:‘ + str(i), ‘值 = ‘ +str(value))
75   print(A + str([i+21]),  =  +str(value3))
76 enumerate_fn_a3()
77 
78 print(=====a4函数形式=====)
79 def enumerate_fn_a4():
80  a4 = list(range(31,41,1))
81  for i,value4 in enumerate(ls4):
82   #print(‘索引:‘ + str(i), ‘值 = ‘ +str(value))
83   print(A + str([i+31]),  =  +str(value4))
84 enumerate_fn_a4()
85 
86 #list(enumerate_fn_a4)
87 
88 ### 想定义一个函数A_Combine_fun,将返回值当作新定义函数A_Combine_fun的参数;然后再执行此函数赋值一个数组
89 #练习对装饰器的使用(装饰器实际上就是一个函数)

运行结果:

 1 *************** a1数组 ***************
 2 a1 =  [16, 41, 56, 70, 12, 50, 28, 34, 60, 67]
 3 a1 =  [16, 41, 56, 70, 12, 50, 28, 34, 60, 67]
 4 *************** a2数组 ***************
 5 a2 =  [63, 87, 93, 94, 60, 6, 6, 32, 89, 2]
 6 a2 =  [63, 87, 93, 94, 60, 6, 6, 32, 89, 2]
 7 *************** a3数组 ***************
 8 a3 =  [96, 71, 24, 82, 70, 64, 18, 82, 97, 9]
 9 a3 =  [96, 71, 24, 82, 70, 64, 18, 82, 97, 9]
10 *************** a4数组 ***************
11 a4 =  [86, 30, 10, 9, 32, 60, 31, 56, 72, 56]
12 a4 =  [86, 30, 10, 9, 32, 60, 31, 56, 72, 56]
13 ===== 方法 一,练习水平1 =====
14 A_Combine =  [16, 41, 56, 70, 12, 50, 28, 34, 60, 67, 63, 87, 93, 94, 60, 6, 6, 32, 89, 2, 96, 71, 24, 82, 70, 64, 18, 82, 97, 9, 86, 30, 10, 9, 32, 60, 31, 56, 72, 56]
15 ===== 方法 二,练习水平2, 方法Ok =====
16 [16, 41, 56, 70, 12, 50, 28, 34, 60, 67, 63, 87, 93, 94, 60, 6, 6, 32, 89, 2, 96, 71, 24, 82, 70, 64, 18, 82, 97, 9, 86, 30, 10, 9, 32, 60, 31, 56, 72, 56]
17 ===== 方法 三 ,重复的、低劣=====
18 =====a1函数形式=====
19 A[1]  = 16
20 A[2]  = 41
21 A[3]  = 56
22 A[4]  = 70
23 A[5]  = 12
24 A[6]  = 50
25 A[7]  = 28
26 A[8]  = 34
27 A[9]  = 60
28 A[10]  = 67
29 =====a2函数形式=====
30 A[11]  = 63
31 A[12]  = 87
32 A[13]  = 93
33 A[14]  = 94
34 A[15]  = 60
35 A[16]  = 6
36 A[17]  = 6
37 A[18]  = 32
38 A[19]  = 89
39 A[20]  = 2
40 =====a3函数形式=====
41 A[21]  = 96
42 A[22]  = 71
43 A[23]  = 24
44 A[24]  = 82
45 A[25]  = 70
46 A[26]  = 64
47 A[27]  = 18
48 A[28]  = 82
49 A[29]  = 97
50 A[30]  = 9
51 =====a4函数形式=====
52 A[31]  = 86
53 A[32]  = 30
54 A[33]  = 10
55 A[34]  = 9
56 A[35]  = 32
57 A[36]  = 60
58 A[37]  = 31
59 A[38]  = 56
60 A[39]  = 72
61 A[40]  = 56
62 [Finished in 0.3s]

 

 

 

日志

返回日志列表

A_Combine = Array1[10]+Array2[10]+Array3[10]+Array4[10] 2019-3-26 20:40 阅读(1)
  • 赞(1)
  • 评论
  • 转载
  • 分享
  • 复制地址
  • 编辑
 
技术分享图片
A_Combine = Array1[10]+Array2[10]+Array3[10]+Array4[10]
###============下面是Dephi群中别人的问题,我理解了一下问题描述如下,用PY实现====================
 ‘‘‘     FileName = D:\Py_eg\egArray-20190326
1)  对列表的操作(zip,chain,类型转换)
2)函数及装饰器的应用



请教一下,有a1,a2,a3,a4,四个数组,每个数组长度100,不一定是可用range(start,end,step)生成的数据,是这个意思
有A数组,长度400,
想取a1的1——10元素放到A的1——10,
a2的1——10放到A的11——20,
a3的1——10放到A的20——30,
a4的1——10放到A的30——40,
就是四个数组重新组合成一个数组(A),间隔是10个元素

A[1] = a1[1]
A[2] = a1[2]
A[3] = a1[3]
A[4] = a1[4]
A[5] = a1[5]
A[6] = a1[6]
A[7] = a1[7]
A[8] = a1[8]
A[9] = a1[9]
A[10] = a1[10]
 
A[11] = a2[1]
A[12] = a2[2]
A[13] = a2[3]
A[14] = a2[4]
A[15] = a2[5]
A[16] = a2[6]
A[17] = a2[7]
A[18] = a2[8]
A[19] = a2[9]
A[20] = a2[10]
 
A[21] = a3[1]
A[22] = a3[2]
A[23] = a3[3]
A[24] = a3[4]
A[25] = a3[5]
A[26] = a3[6]
A[27] = a3[7]
A[28] = a3[8]
A[29] = a3[9]
A[30] = a3[10]
 
A[31] = a4[1]
A[32] = a4[2]
A[33] = a4[3]
A[34] = a4[4]
A[35] = a4[5]
A[36] = a4[6]
A[37] = a4[7]
A[38] = a4[8]
A[39] = a4[9]
A[40] = a4[10]
‘‘‘
A = a1[1] + ...a1[10] + a2[1] + ... + a1[10] + a3[1]+...+a3[10] + a4[1] + ... + a4[10]
================================================================
print(‘*‘*15,‘a1数组‘,‘*‘*15)
import string
from random import randint
a1 = list(range(0,10,1))      ### a1 = [randint(0,100) for x in range(10)] ,不用这个是否还有其他写法  
a1 = list(randint(0,100) for x in range(10))  #改进版a1
print(‘a1 = ‘,a1)
ls1=[str(i) for i in a1]     ###此处转换成字符串的目的,只是假定要求的条件是字符串
print(‘a1 = ‘,ls1)
 
print(‘*‘*15,‘a2数组‘,‘*‘*15)
#a2 = list(range(11,20,1))
a2 = list(randint(0,100) for x in range(10))  #改进版a2
print(‘a2 = ‘,a2)
ls2=[str(i) for i in a2]
print(‘a2 = ‘,ls2)
 
 
print(‘*‘*15,‘a3数组‘,‘*‘*15)
#a3 = list(range(0,10,1))
a3 = list(randint(0,100) for x in range(10))  #改进版a3
print(‘a3 = ‘,a3)
ls3=[str(i) for i in a3]
print(‘a3 = ‘,ls3)
 
 
print(‘*‘*15,‘a4数组‘,‘*‘*15)
#a4 = list(range(0,10,1))
a4 = list(randint(0,100) for x in range(10))  #改进版a4
print(‘a4 = ‘,a4)
ls4=[str(i) for i in a4]
print(‘a4 = ‘,ls4)
 
 
print(‘===== 方法 一,练习水平1 =====‘)
a1.extend(a2)  #不用itertools.chain形式,怎样可有这类效果的写法((a1.extend(a2)).extend(a3)).extend(a4),当然它是错误的 
a1.extend(a3)
a1.extend(a4)
print(‘A_Combine = ‘,a1)
# def enumerate_A():
#  for i,value4 in enumerate(A_combine):
#   print(‘A = ‘ +str(A_combine))
# enumerate_A()
 
print(‘===== 方法 二,练习水平2, 方法Ok =====‘)
import itertools
A_After_Combine_2 = []
for j in itertools.chain(ls1,ls2,ls3,ls4):
A_After_Combine_2.append(j)
print(A_After_Combine_2)
 
 
 
print(‘===== 方法 三 ,忽略下面拙劣的写法,放此处只是给咱们其他的应用学习=====‘)
print(‘=====a1函数形式=====‘)
# def enumerate_fn_a1():
#  a1 = list(range(1,11,1))
#  for i,value1 in enumerate(ls1):     ###思考:  此处需将4个列表的value一起迭代 (zip可成字典迭代,itertools.chain()可成链接)
#   #print(‘索引:‘ + str(i), ‘值 = ‘ +str(value))
#   print(‘A‘ + str([i+1]), ‘ = ‘ +str(value1))
# enumerate_fn_a1()
 
# print(‘=====a2函数形式=====‘)
# def enumerate_fn_a2():
#  a2 = list(range(11,21,1))
#  for i,value2 in enumerate(ls2):
#   #print(‘索引:‘ + str(i), ‘值 = ‘ +str(value))
#   print(‘A‘ + str([i+11]), ‘ = ‘ +str(value2))
# enumerate_fn_a2()
 
# print(‘=====a3函数形式=====‘)
# def enumerate_fn_a3():
#  a3 = list(range(21,31,1))
#  for i,value3 in enumerate(ls3):
#   #print(‘索引:‘ + str(i), ‘值 = ‘ +str(value))
#   print(‘A‘ + str([i+21]), ‘ = ‘ +str(value3))
# enumerate_fn_a3()
 
# print(‘=====a4函数形式=====‘)
# def enumerate_fn_a4():
#  a4 = list(range(31,41,1))
#  for i,value4 in enumerate(ls4):
#   #print(‘索引:‘ + str(i), ‘值 = ‘ +str(value))
#   print(‘A‘ + str([i+31]), ‘ = ‘ +str(value4))
# enumerate_fn_a4()
 
 
### 想定义一个函数A_Combine_fun,将将上面4个函数的 返回值当作新定义函数A_Combine_fun的参数;然后再执行此函数赋值一个数组,练习对装饰器的使用(装饰器实际上就是一个函数)
 



运行结果:    ###此处是否可将4个列表的index,value、及4个列表一起再迭代
                      直接得出A=[1,2,3,4,5,......  40]这个数据,索引可不用写出,但从索引值就可直接看出是对应的索引值

*************** a1数组 ***************
a1 =  [12, 56, 45, 29, 56, 93, 61, 80, 14, 32]
a1 =  [‘12‘, ‘56‘, ‘45‘, ‘29‘, ‘56‘, ‘93‘, ‘61‘, ‘80‘, ‘14‘, ‘32‘]
*************** a2数组 ***************
a2 =  [13, 92, 12, 70, 31, 91, 93, 17, 48, 19]
a2 =  [‘13‘, ‘92‘, ‘12‘, ‘70‘, ‘31‘, ‘91‘, ‘93‘, ‘17‘, ‘48‘, ‘19‘]
*************** a3数组 ***************
a3 =  [69, 44, 68, 34, 26, 74, 40, 57, 4, 92]
a3 =  [‘69‘, ‘44‘, ‘68‘, ‘34‘, ‘26‘, ‘74‘, ‘40‘, ‘57‘, ‘4‘, ‘92‘]
*************** a4数组 ***************
a4 =  [69, 26, 84, 79, 73, 39, 93, 71, 18, 85]
a4 =  [‘69‘, ‘26‘, ‘84‘, ‘79‘, ‘73‘, ‘39‘, ‘93‘, ‘71‘, ‘18‘, ‘85‘]
===== 方法 一,练习水平1 =====
A_Combine =  [12, 56, 45, 29, 56, 93, 61, 80, 14, 32, 13, 92, 12, 70, 31, 91, 93, 17, 48, 19, 69, 44, 68, 34, 26, 74, 40, 57, 4, 92, 69, 26, 84, 79, 73, 39, 93, 71, 18, 85]
===== 方法 二,练习水平2, 方法Ok =====
[‘12‘, ‘56‘, ‘45‘, ‘29‘, ‘56‘, ‘93‘, ‘61‘, ‘80‘, ‘14‘, ‘32‘, ‘13‘, ‘92‘, ‘12‘, ‘70‘, ‘31‘, ‘91‘, ‘93‘, ‘17‘, ‘48‘, ‘19‘, ‘69‘, ‘44‘, ‘68‘, ‘34‘, ‘26‘, ‘74‘, ‘40‘, ‘57‘, ‘4‘, ‘92‘, ‘69‘, ‘26‘, ‘84‘, ‘79‘, ‘73‘, ‘39‘, ‘93‘, ‘71‘, ‘18‘, ‘85‘]

=====a1 func=====
A[1]  = 1
A[2]  = 2
A[3]  = 3
A[4]  = 4
A[5]  = 5
A[6]  = 6
A[7]  = 7
A[8]  = 8
A[9]  = 9
A[10]  = 10
=====a2 func=====
A[11]  = 11
A[12]  = 12
A[13]  = 13
A[14]  = 14
A[15]  = 15
A[16]  = 16
A[17]  = 17
A[18]  = 18
A[19]  = 19
A[20]  = 20
=====a3 func=====
A[21]  = 21
A[22]  = 22
A[23]  = 23
A[24]  = 24
A[25]  = 25
A[26]  = 26
A[27]  = 27
A[28]  = 28
A[29]  = 29
A[30]  = 30
=====a4 func=====
A[31]  = 31
A[32]  = 32
A[33]  = 33
A[34]  = 34
A[35]  = 35
A[36]  = 36
A[37]  = 37
A[38]  = 38
A[39]  = 39
A[40]  = 40

########################忽略下面,只是练习##################
import string
from random import randint
from itertools import chain
 
a1 = [randint(0,100) for x in range(10)]
print(a1)
ls1 = [str(i) for i in a1]
print(ls1)
 
a2 = [randint(0,100) for x in range(10)]
print(a2)
ls2 = [str(i) for i in a2]
print(ls2)
 
 
# A = []
# for c,m in zip([str(i) for i in a1],[str(i) for i in a2]):
# A.append(c)
# A.append(m)
# print(A)
 
# A = []
# for c,m in zip(a1,a2):
# A.append(c)
# A.append(m)
# print(A)
 
import itertools
A = []
for c in itertools.chain(ls1,ls2):
A.append(c)
print(A)








 

有a1,a2,a3,a4,四个数组,四个数组重新组合成一个数组(A),间隔是10个元素

原文:https://www.cnblogs.com/CDPJ/p/12530261.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!