Python学习小记(2)---[list, iterator, and, or, zip, dict.keys]

1.List行为

可以用 alist[:] 相当于 alist.copy() ,可以创建一个 alist 的 shallo copy,但是直接对 alist[:] 操作却会直接操作 alist 对象

>>> alist = [1,2,3]
>>> blist = alist[:]               #assign alist[:] to blist
>>> alist
[1, 2, 3]
>>> blist
[1, 2, 3]
>>> blist[2:] = [‘a‘, ‘b‘, ‘c‘]   #allter blist
>>> alist
[1, 2, 3]
>>> blist
[1, 2, ‘a‘, ‘b‘, ‘c‘]
>>> alist[:] = [‘a‘, ‘b‘, ‘c‘]       #alter alist[:]
>>> alist
[‘a‘, ‘b‘, ‘c‘]


2.循环技巧

#list
>>> knights = {‘gallahad‘: ‘the pure‘, ‘robin‘: ‘the brave‘}
>>> for k, v in knights.items():
...     print(k, v)
...
gallahad the pure
robin the brave

#zip函数
>>> questions = [‘name‘, ‘quest‘, ‘favorite color‘]
>>> answers = [‘lancelot‘, ‘the holy grail‘, ‘blue‘]
>>> for q, a in zip(questions, answers):
...     print(‘What is your {0}?  It is {1}.‘.format(q, a))
...
What is your name?  It is lancelot.
What is your quest?  It is the holy grail.
What is your favorite color?  It is blue.

#reversed & sorted
#Note:  这两个函数不修改参数本身,返回一个iterator
#reversed
>>> for i in reversed(range(1, 10, 2)):
...     print(i)
...
9
7
5
3
1

#sorted
>>> basket = [‘apple‘, ‘orange‘, ‘apple‘, ‘pear‘, ‘orange‘, ‘banana‘]
>>> for f in sorted(set(basket)):
...     print(f)
...
apple
banana
orangez
pear


3.

enumerate()函数可以把创建ist,str的可迭代对象,迭代对象每次返回一个(index, value),形式的元组

>>> astr = ‘abc‘
>>> alist = [1,2,3]
>>> enumerate(astr)
<enumerate object at 0x0374D760>
>>> enumerate(alist)
<enumerate object at 0x0374D698>
>>> def print_iterator(iterator):
...     for ele in iterator:
...             print(ele)
...
>>> print_iterator(astr)
a
b
c
>>> print_iterator(enumerate(astr))
(0, ‘a‘)
(1, ‘b‘)
(2, ‘c‘)
>>> print_iterator(enumerate(alist))
(0, 1)
(1, 2)
(2, 3)
>>>                                     


4.zip()示例

>>> a = [1,2,3]
>>> b = [‘a‘, ‘b‘, ‘c‘]
>>> c = [‘one‘, ‘two‘, ‘three‘]
>>> a,b,c
([1, 2, 3], [‘a‘, ‘b‘, ‘c‘], [‘one‘, ‘two‘, ‘three‘])
>>>
>>> def print_iterator(iterator):
...     for ele in iterator:
...             print(ele)
...
>>>
>>> print_iterator(zip(a))
(1,)
(2,)
(3,)
>>> print_iterator(zip(a,b))
(1, ‘a‘)
(2, ‘b‘)
(3, ‘c‘)
>>>
>>> print_iterator(zip(a,b,c))
(1, ‘a‘, ‘one‘)
(2, ‘b‘, ‘two‘)
(3, ‘c‘, ‘three‘)                                                                                       


5.

注意 adict.keys() 返回的只是 adict 的 keys 的视图

>>> adict = dict(a=1, b=2)
>>> adict
{‘a‘: 1, ‘b‘: 2}
>>> view = adict.keys()
>>> view
dict_keys([‘a‘, ‘b‘])
>>> adict[‘c‘] = 3
>>> view
dict_keys([‘a‘, ‘b‘, ‘c‘])


6.不一样的逻辑运算返回值

大概规则就是返回第一个可以判别表达式真假对象

>>> ‘‘ and ‘a‘ and ‘b‘
‘‘
>>> ‘c‘ and ‘‘ and ‘b‘
‘‘
>>> ‘c‘ and 0 and ‘b‘
0
>>> ‘‘ or ‘a‘ or ‘b‘
‘a‘
>>> ‘c‘ or ‘‘ or ‘b‘
‘c‘
>>> ‘‘ or 0 or ‘b‘
‘b‘
>>> 1 and 3 and 4
4
>>> 0 or ‘‘ or []
[]

原文地址:https://www.cnblogs.com/liupy/p/9917003.html

时间: 2024-10-01 05:20:14

Python学习小记(2)---[list, iterator, and, or, zip, dict.keys]的相关文章

python学习小记1

(1) Python优缺点: 优点: 1.Python有非常完善的基础代码库,覆盖了网络.文件.GUI.数据库.文本等大量内容,除了内置的库外,Python还有大量的第三方库; 2.Python应用: 首选是网络应用,包括网站.后台服务等等:其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等:另外就是把其他语言开发的程序再包装起来,方便使用. 缺点: 1. 第一个缺点就是运行速度慢,和C程序相比非常慢; 2. 第二个缺点就是代码不能加密; (2) Python安装 采用Python2.

python学习小记

python画的图表不能显示中文的时候,使用下面的代码可以解决这个问题: import matplotlib matplotlib.use('qt4agg') #指定默认字体 matplotlib.rcParams['font.sans-serif'] = ['SimHei'] matplotlib.rcParams['font.family']='sans-serif' 画曲线的代码: import numpy as np import matplotlib.pyplot as plt fro

python学习小记01--萌新的进化

1.英文缩写 比如换行\n代表[+newline]:退格\b代表[+backspace]:回车\r代表[+return].大家可以按照这种方法记住转义字符的含义 整数,整数英文为integer,简写做int整数,整数英文为integer,简写做int str代表字符串,全称为string,整数的英文简称为int,全称为integer. 2.= 和 == 代码世界中,赋值符号=不是左边等于右边的意思.仅仅表示赋值动作:把右边的内容放到了左边的盒子中. 3. 整数 而整数脱掉了[引号]马甲,只能『单

Python学习 Day 3 字符串 编码 list tuple 循环 dict set

字符串和编码 字符 ASCII Unicode UTF-8 A 1000001 00000000 01000001 1000001 中 x 01001110 00101101 11100100 10111000 10101101 格式化 在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下: >>> 'Hello, %s' % 'world' 'Hello, world' >>> 'Hi, %s, you have $%d.' % ('Michael'

linux学习小记 (一 )

shell 学习小记: 注意:多看系统脚本  多模仿    su切换用户时需要输入目标用户密码,root(superuser)切换到任何用户都不需要输入密码,- 参数必须要是最后一个(su huhu -) sudo需要输入当前用户密码,拥有sudo特权的用户可以执行 "sudo su -"命令,使用自己的密码切换到root用户 , 所以应该在/etc/sudoers 文件中禁止 sudo 执行su命令 linux文件与颜色: /etc/DIR_COLORS   (命令dircolors

Python学习之三大名器-装饰器、迭代器、生成器

Python学习之三大名器-装饰器.迭代器.生成器 一.装饰器     装饰,顾名思义就是在原来的基础上进行美化及完善,器这里指函数,所以说装饰器就是装饰函数,也就是在不改变原来函数的代码及调用方式的前提下对原函数进行功能上的完善.其核心原理其实是利用闭包.     格式 @关键字+装饰函数          被装饰函数()      注意:@行必须顶头写而且是在被装饰函数的正上方     按照形式可以分为:无参装饰器和有参装饰器,有参装饰器即给装饰器加上参数     以下示例是一个无参装饰器,

Python学习记录day3

Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个无序且不重复,可嵌套的元素集合 class set(object):     """     set() -> new empty set object     set(iterable) -> new set object     Build an unordered collection of unique elements.     

Python学习系列(四)Python 入门语法规则2

Python学习系列(四)Python 入门语法规则2 2017-4-3 09:18:04 编码和解码 Unicode.gbk,utf8之间的关系 2.对于py2.7, 如果utf8>gbk, utf8解码成Unicode,再将unicode编码成gbk 对于py3.5 如果utf8>gbk, utf8 直接编码成gbk(中间那一步直接被优化了) 3.很多时候,这个可以直接跳过,只有当编码出下问题的时候,再考虑这个知识点 二.运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算

【Python学习笔记之二】浅谈Python的yield用法

在上篇[Python学习笔记之一]Python关键字及其总结中我提到了yield,本篇文章我将会重点说明yield的用法 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor). 一.迭代器(iterator) 在Python中,for循环可以用于Python中的任何类型,包括列表.元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器 迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前