美文网首页
循环序列

循环序列

作者: 榴莲气象 | 来源:发表于2019-01-01 22:46 被阅读2次

序列解包(for x,y in zip(keys, values):)详解。

置顶 2018年09月28日 01:02:20 Apy码农 阅读数:306

<article class="baidu_pl" style="box-sizing: inherit; outline: 0px; display: block; position: relative; padding-top: 16px; color: rgb(51, 51, 51); font-family: "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">

版权声明:如需发表此文章,请附带转载标志或原地址链接,谢谢合作 https://blog.csdn.net/weixin_38091140/article/details/82875078

序列解包是一个非常重要和常用的一个功能,使用序列解包可以用非常简洁的方法完成复杂的功能。增强代码的可读性,减少代码量

1.使用序列解包对多个变量同时进行赋值。

a, b, c = 1, 2, 3print(a, b, c) test_tuple = (False, 3.5, 'test')d, e, f = test_tupleprint(d, e, f) x, y, z = map(str, range(3)) print(x, y, z)

输出结果分别为:

1 2 3
False 3.5 test
0 1 2

2.序列解包也可以适用于列表字典呢,字典的话默认是对“key”进行操作, 如需对“key”-“value”进行操作则需要使用字典的items()方法进行操作。“value”进行操作的话就使用values()进行操作。**

#列表进行解包a = [1, 2, 3, 5, 6]b, c, d, f, g = aprint(b, c, d, f, g) print('---------------------------') #字典进行解包test_dicts = {'a': 'x', 'b': 1, 'c': 3} q, w, e = test_dictsr, t, y = test_dicts.items()i, o, p = test_dicts.values() print(q, w, e)print(r, y, t)print(i, o, p)

输出:

1 2 3 5 6

a b c
('a', 'x') ('c', 3) ('b', 1)
x 1 3

3,还可以用序列解包同时遍历多个序列

list_1 = [1, 2, 3, 4]list_2 = ['a', 'b', 'c'] for x, y in zip(list_1, list_2):    print(x, y)

4,使用内置函数enumerate()返回的的迭代对象进行遍历时的序列解包**。

 # 使用enumerate进行遍历(使用.format()进行格式化)x = ['a', 'b', 'c']for i, v in enumerate(x):    print('遍历出来的值的下标是{0},值是{1}'.format(i, v))

输出:

遍历出来的值的下标是0,值是a
遍历出来的值的下标是1,值是b
遍历出来的值的下标是2,值是c

5,还支持在实参面前加上一个()号进行序列解包,从而实现将序列中的元素值依次传递给相同数量的形参。*

>>> print(*[1,2,3,4],4,*(5,6))1 2 3 4 4 5 6>>> *range(4),4(0, 1, 2, 3, 4)>>> {*range(4),4,(5,6,7,8,9)}{0, 1, 2, 3, 4, (5, 6, 7, 8, 9)}>>> {*range(4),4,*(5,6,7,8,9)}{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}>>> {'x':1, **{'y':10}}{'x': 1, 'y': 10}>>>

这就是这期的序列解包了。

</article>

实例1 循环赋值

crs=[get_obs(filename) for filename in filenames]

实例2 循环判断

OUT[['rain','rain208','rain820']]=OUT[['rain','rain208','rain820']].applymap( lambda x: x if x<30000 else (x-30000 if x<31000 else (x-31000 if x<32000 else(x-32000 if x<32700 else x-32700))))

实例3 循环读取数据

filenames=[]
#OUT = pd.DataFrame(columns=['Stid','Lat','Lon','year', 'month','day','rain','rain208','rain820'])
OUT = pd.DataFrame(columns=['Time','Stid','Lat','Lon','Height','rain','rain208','rain820'])
search('PRE', '.')
filenames=sorted(filenames)#;防止顺序不对

def search(s, path=os.path.abspath('.')):  #os.path.abspath(path):绝对路径

    for z in os.listdir(path):
        if os.path.isdir(path + os.path.sep + z):  # os.path.sep:路径分隔符 linux下就用这个了’/’
            #print('Currnet:', path)
            path2 = os.path.join(path, z) #;os.path.join(): 常用来链接路径
            #print('future:', path2)
            search(s, path2)
        elif os.path.isfile(path + os.path.sep + z): #检验给出的路径是否是一个文件:os.path.isfile()来自 <http://blog.csdn.net/devil_2009/article/details/7941241>
            if s in z:
                #print(os.path.join(path, z))
                filenames.append(os.path.join(path, z))
                #with open(path + os.path.sep + z, 'r') as fr:
                #    with open('save.txt', 'a') as fw:
                #        fw.write(path + '\t' + fr.read())

相关文章

  • 循环序列

    序列解包(for x,y in zip(keys, values):)详解。 置顶 2018年09月28日 01:...

  • Python 学习笔记 - 条件循环 for

    Python 循环 - for Python 中有 for 循环 while 循环 for 用来遍历序列,如列表、...

  • 2019-02-15

    2019-02-15 12.4.2 生成循环序列例:利用MOD函数生成循环序列A列是用户指定的循环周期,B列是初始...

  • Python高级知识点学习(四)

    序列类型 Python中的序列类型,序列类型可以使用for循环遍历。 序列类,序列是python中非常重要的协议,...

  • 循环序列模型

    数学符号——构建字典 建立字典(对于商业应用来说,或者对于一般规模的商业应用来说 30,000 到 50,000 ...

  • ng4.x 常用指令

    # 1 : *ngFor --- 数据循环 No 1:*ngFor普通循环 No 2:循环时设置序列号 N...

  • 2019-03-07

    python中的循环有两种:for循环、while循环 1.for循环 a.语法 """for 变量名 in 序列...

  • itertools模块

    创建自然序列count 无限循环重复传入的序列cycle 注意:传入的参数类型需要是可迭代对象 上面的for循环限...

  • Python循环语句——for循环

    for循环 for循环常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。语法特点:遍历...

  • Python和Excel学习-4循环

    4.1 for循环 for 循环用来遍历任何序列的项目,这个序列可以是一个列表也可以是一个字符串,针对这个序列中的...

网友评论

      本文标题:循环序列

      本文链接:https://www.haomeiwen.com/subject/mkorkqtx.html