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

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

A_Combine = Array1[10]+Array2[10]+Array3[10]+Array4[10] 

###============下面是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个元素

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

 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() #list(enumerate_fn_a4) ### 想定义一个函数A_Combine_fun,将返回值当作新定义函数A_Combine_fun的参数;然后再执行此函数赋值一个数组
#练习对装饰器的使用(装饰器实际上就是一个函数)

运行结果:

 *************** a1数组 ***************
a1 = [16, 41, 56, 70, 12, 50, 28, 34, 60, 67]
a1 = ['', '', '', '', '', '', '', '', '', '']
*************** a2数组 ***************
a2 = [63, 87, 93, 94, 60, 6, 6, 32, 89, 2]
a2 = ['', '', '', '', '', '', '', '', '', '']
*************** a3数组 ***************
a3 = [96, 71, 24, 82, 70, 64, 18, 82, 97, 9]
a3 = ['', '', '', '', '', '', '', '', '', '']
*************** a4数组 ***************
a4 = [86, 30, 10, 9, 32, 60, 31, 56, 72, 56]
a4 = ['', '', '', '', '', '', '', '', '', '']
===== 方法 一,练习水平1 =====
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]
===== 方法 二,练习水平2, 方法Ok =====
['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
===== 方法 三 ,重复的、低劣=====
=====a1函数形式=====
A[1] = 16
A[2] = 41
A[3] = 56
A[4] = 70
A[5] = 12
A[6] = 50
A[7] = 28
A[8] = 34
A[9] = 60
A[10] = 67
=====a2函数形式=====
A[11] = 63
A[12] = 87
A[13] = 93
A[14] = 94
A[15] = 60
A[16] = 6
A[17] = 6
A[18] = 32
A[19] = 89
A[20] = 2
=====a3函数形式=====
A[21] = 96
A[22] = 71
A[23] = 24
A[24] = 82
A[25] = 70
A[26] = 64
A[27] = 18
A[28] = 82
A[29] = 97
A[30] = 9
=====a4函数形式=====
A[31] = 86
A[32] = 30
A[33] = 10
A[34] = 9
A[35] = 32
A[36] = 60
A[37] = 31
A[38] = 56
A[39] = 72
A[40] = 56
[Finished in 0.3s]
 

发表

匿名评论(隐身草)

有a1,a2,a3,a4,四个数组,四个数组重新组合成一个数组(A),间隔是10个元素的更多相关文章

  1. 如何生成a1,a2,a3,a4这样的变量名

    var num=6; function Girl(beautifulScore){ this.beautifulScore=beautifulScore; } var girls=[]; for (v ...

  2. //给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和

    //给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和 # include<stdio.h> void main() { ,sum1; ]={,- ...

  3. 给定一个数列a1,a2,a3,...,an和m个三元组表示的查询,对于每个查询(i,j,k),输出ai,ai+1,...,aj的升序排列中第k个数。

    给定一个数列a1,a2,a3,...,an和m个三元组表示的查询,对于每个查询(i,j,k),输出ai,ai+1,...,aj的升序排列中第k个数. #include <iostream> ...

  4. 给出一列数a1,a2,a3....an,求它们的逆序对数,即有多少个有序对(i,j) 使得iaj,n高达10的6次方

    //归并排序 //#include<stdio.h> //#include<string.h> //#include<algorithm> //#include&l ...

  5. js 将数组中的每一项安装奇偶重新组合成一个数组对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. 数据结构学习-数组A[m+n]中依次存放两个线性表(a1,a2···am),(b1,b2···bn),将两个顺序表位置互换

    将数组中的两个顺序表位置互换,即将(b1,b2···bn)放到(a1,a2···am)前边. 解法一: 将数组中的全部元素(a1,a2,···am,b1,b2,···bn)原地逆置为(bn,bn-1, ...

  7. 两个有序数组 A1 A2 的合并

    /** * 问题6.有序数组 A1 A2 的合并 */ @Test public void orderArrayMerge() { // 两个有序数组 A1 A2 的合并 int[] A1 = {1, ...

  8. 有两个序列A和B,A=(a1,a2,...,ak),B=(b1,b2,...,bk),A和B都按升序排列。对于1<=i,j<=k,求k个最小的(ai+bj)。要求算法尽量高效。

    有两个序列A和B,A=(a1,a2,...,ak),B=(b1,b2,...,bk),A和B都按升序排列.对于1<=i,j<=k,求k个最小的(ai+bj).要求算法尽量高效. int * ...

  9. 已知一个序列A1.A2….An,给你一个整数K,找到满足所有Ai+Aj>=k的数对(i,j)的个数

    #include<bits/stdc++.h> using namespace std; #define ll long long #define maxn 100010 /* 已知一个序 ...

随机推荐

  1. OC 面向对象的特性

    面向对象的编程语言有封装.继承 .抽象.多态4个主要的特征. 面向对象编程有三大特性:封装.继承.多态.   1. 封装: 封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高 ...

  2. poj1904 完美匹配+Tarjan

      King's Quest Time Limit: 15000MS   Memory Limit: 65536K Total Submissions: 9460   Accepted: 3497 C ...

  3. Smarty模板引擎原理概述

    smarty(模板引擎,模板技术) 使用smarty主要是为了实现逻辑和外在内容的分离: 特点: 1.速度快(因为第二次执行的时候使用第一次执行时生成的编译文件) 2.缓存技术(正是因为缓存技术,使得 ...

  4. WordPress 设置图片的默认显示方式(尺寸/对齐方式/链接到)

    在文章中插入图片时,我们几乎每次都要设置图片的尺寸.对齐方式和链接方式,是比较耗时费力的.其实我们可以给这几个选项设置默认参数,省去我们每次设置的麻烦. 可以将下面的代码添加到主题的 function ...

  5. 如何利用Xpath抓取京东网商品信息

    前几小编分别利用Python正则表达式和BeautifulSoup爬取了京东网商品信息,今天小编利用Xpath来为大家演示一下如何实现京东商品信息的精准匹配~~ HTML文件其实就是由一组尖括号构成的 ...

  6. python时间戳和时间字符串的转换

    # -*- coding: utf-8 -*-# date=2020/3/27import timeimport uuid def getTimestamp_1770(): now_1770 = ro ...

  7. 微软Azure IoT驱动数字化变革线上分享会(6月4号)

    微软Azure IoT驱动数字化变革线上分享会(6月4号)   微软作为全球范围内IoT领域的领军者,以微软智能云Azure为基础和核心,推动包括物联网.机器学习.微服务.人工智能等在内的新技术的发展 ...

  8. 如何利用CSS选择器抓取京东网商品信息

    前几天小编分别利用Python正则表达式.BeautifulSoup.Xpath分别爬取了京东网商品信息,今天小编利用CSS选择器来为大家展示一下如何实现京东商品信息的精准匹配~~ CSS选择器 目前 ...

  9. ngnix随笔二

    ngnix配置文件 1.rpm -ql nginx /etc/logrotate.d/nginx /etc/nginx /etc/nginx/conf.d /etc/nginx/conf.d/defa ...

  10. 微信小程序订阅

    微信小程序订阅 摘要 1.基于promise封装微信小程序订阅 2.解决由于微信基础库版本低下的兼容 3.解决“总是保持以上选择,不再询问”的取消状态 主要运用API: requestSubscrib ...