python 基础
#/usr/bin/env python
#coding=utf-8 #有汉字的时候加上
if 1+2: # 非零非空为真 在if语句中,只会执行一个分支,其他不执行,一个if语句中只有一个else
>>> 10/3
3
>>> 10/3.0
3.3333333333333335
>>> 10//3
3
>>> 10//3.0
3.0
>>> 10%3
1
>>> 2**3
8
>>> 2<<3
16
>>> 2>>3
0
>>> 3&2
2
>>> 3|2
3
>>> 3^2
1
不支持多目运算符 (? : )
#{1..100 + 从1加到100
#$ seq -s + 1 99 | bc }
$python #交互式
>>> range(1,10)
[1,2,3,4,5,6,7,8,9]
>>>range(1,10,2)
[1,3,5,7,9]
>>>range(10,2,2)
[]
>>>range(10,2,-1):
[10,9,8,7,6,5,4,3]
>>>li = [] >>>li = list()
>>>li = [1,2,3,4,5['a','b']]
>>>li[2]
3
>>>li[5][0]
'a'
>>>li[6]
indexEoor: list out of range
>>>len(li)
5
>>>for i in li:
print i
1
2
3
4
5
['a','b']
>>>2 in li
ture
>>>del li[0]
>>>li
[2,3,4,5['a','b']]
#(莫有返回值时,就是在原有的列表的改变,如果有返回值,想使用必须先赋值才能用,
#原值不改变)
处理一组有序项目的数据结构
列表是可变类型的数据
使用[]表示列表,包含多个以逗号分隔的数字或字串
列表操作: 内存储存空间相同
索引和切片
添加
删除
修改
查找
>>> li = [1,2,3,4]
>>>li.append('a')
>>>li
[1,2,3,4,'a']
>>>li.append([5,6])
>>li
[1,2,3,4,'a',[5,6]]
>>>li2 = ['hello','world']
>>>li2.extend(li)
li bubian
>>>li2
['hello','world',1,2,3,4,'a',[5,6]]
>>>li = [1,2,3]
>>>li2 = [4,5,6]
>>>li+li2
[1,2,3,4,5,6]
>>>li.insert(1,100)
>>>li
[1,100,2,3]
>>>li.insert(-1,10)
>>>li # 从后边插入
[1,100,2,10,3]
>>>li.insert(100,10) == li.insert(len(li),10) #规范
[1,100,2,3,10]
>>>li.insert(1,[1,2,3])
>>>li
[1,[1,2,3],100,2,3,10]
>>>li.remove(100)
>>>li
[1,[1,2,3],2,3,10]#只删除一个索引,并且先删除第一个
>>>li.pop()
>>>li
[1,[1,2,3],2,3]
>>>li.count(1)#统计1出现的次数
1
>>>li.index(1) # 统计1的索引
>>>li = [2,1,4,3,6,5]
>>>li.sort(li)
>>>li
[1,2,3,4,5,6] #排序
>>>li.reverse()
>>>li
[6,5,4,3,2,1]
>>>li2 = li[2:4]
[4,3]
>>>li[:3]
[6,5,4]
>>>li[3:]
[3,2,1]
>>>li[:3:2]
[1,3]
>>li[2:4:-1]
[]
>>>li[4:2:-1]
>>>li = [1,2,3,4]
>>>li2 = li
>>>id(li) == id(li2)
>>> li.append(1)
>>>li
[1,2,3,4,1]
>>>li2
[1,2,3,4,1]
python 列表赋值是引用赋值,相当在内存中引用2个索引,改变其中一个,另一个也改变
>>>li = [1,2,3,4]
>>>li2 = li[:]
id(li) != id(li2)
可以用切片解决
列表里面的内容可以改变 t[0]=100
支持下标索引的度是有顺序的
元组
使用()圆括号中用逗号分割的项目定义
元组的值不可改变
内存存储空间是不同的
>>>t = (1,2,3) #元组里面的值 t[0]=**不改变 支持分片 用于固定ip 固定端口
>>> t [1:3]
(2,3)
>>>t = (1,2,3,[1,2,3,4])
>>>t[3][0] = 100
>>> t
(1,2,3,[100,2,3,4])
集合 s = {1,2,3}里面必须要有内容
集合支持去重复的值,根据 集合里面的值的hash值,所以集合里面的值都是可以被哈希的
集合是无需的,所以不能用下标索引查找,不支持切片
>>>s = set()
>>>type(s)
<type 'set'>
>>>s = {} #不能这样定义
>>>type(s)
<type 'dict'> #字典
>>>s = {1,1,1,2,3,4,5}
>>>s
set([1,2,3,4,5]) # 集合的元素不重复
>>s[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing
>>>
>>> s = {1,2,3,[1,2]}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>>
>>> s = {1,2,3,(1,2)}
>>> s
set([(1, 2), 1, 2, 3])
>>>
>>> li = [1,2,3,4,5]
>>> s = set(li)
>>> s
set([1, 2, 3, 4, 5])
>>> type s
File "<stdin>", line 1
type s
^
SyntaxError: invalid syntax
>>> type(s)
<type 'set'>
>>> #list 变 set
>>> li2 = list (s)# set 变 list
>>> li2
[1, 2, 3, 4, 5]
>>>
>>> li = list(set([1,2,3,4]))
>>> li
[1, 2, 3, 4]
>>>
>>> s
set([1, 2, 3, 4, 5])
>>> s.add(100)
>>> s1 = ['huli',4]
>>> s.update(s1)
>>> s
set([1, 2, 3, 4, 5, 'huli', 100])
>>>
>>> s2 = {1,2,7}
>>> s.update(s2)
>>> s
set([1, 2, 3, 4, 5, 7, 'huli', 100])
>>> s4 = (8,9)
>>> s.update(s4)
>>> s
set([1, 2, 3, 4, 5, 7, 8, 9, 'huli', 100])
>>>s.remove(1)
>>>s
set([2,3,4,5,7,8,9,'huli',100])
>>>s.discard(3)
>>>s
set([2,4,5,7,8,9,'huli',100])
>>>s.pop()
>>>s
set([4,5,7,8,9,'huli',100])
>>>s.clear()
>>>s
set([])
python一切皆对象
>>>s={1,2,3,4,5}
>>>s1={2,4,5,6}
>>> s1.difference(s) # == >>>s1-s
set([6])
>>> s1
set([2, 3, 5, 6])
>>> s
set([1, 2, 3, 4, 5])
>>>
>>> s1.intersection(s) # == >>>s1&s
set([2, 3, 5])
>>> s1.difference_update(s)
>>> s1
set([6])
>>>s = {1,2,3}
>>>s1 = {2,3,4}
>>>s.isdisjoint(s1)
False
>>>s.issubset(s1)
False
交集 intersection &
并集 | 都不修改原内容
判断是不是有交集 s.isdisjoint(s1) 莫有ture
s1是不是s的子集 s1.issubset(s)
字典
是 python 中唯一的映射类型(哈希表)无序的
字典对象是可变的,但是字典的键必须是不可变对象,并且一个字典中可以使用不
同类型的键值
keys()返回键列表
values()返回值列表
items()返回包含键值对的元组
>>> type(d)
<type 'dict'>
>>> d = {'name':'tom','age':10}
>>> d2 = {'name':'xpg','name':'qq'}
>>> d2
{'name': 'qq'}
>>> d2 = {'name':'xpg',{1,2}:'qq'}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'set'
>>> d2 = {'name':'xpg',[1,2]:'qq'}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> d2 = {'name':'xpg',(1,2):'qq'}
>>>
>>> d2
{(1, 2): 'qq', 'name': 'xpg'}
>>> d2.keys()
[(1, 2), 'name']
>>>
>>> d2.iterkeys()
<dictionary-keyiterator object at 0x17720a8>
>>> t = d2.iterkeys()
>>> t.next()
(1, 2)
>>> t.next()
'name'
>>> t.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
>>>
>>> d2.values()
['qq', 'xpg']
>>> d2
{(1, 2): 'qq', 'name': 'xpg'}
>>>
>>> for i in d2.iterkeys():
... print i
...
(1, 2)
name
>>>
>>> d2.items()
[((1, 2), 'qq'), ('name', 'xpg')]
>>> for x,y in d2.items():
... print x,y
...
(1, 2) qq
name xpg
>>>
>>> d['name']
'tom'
>>> for i in d.keys():
... print i,d[i]
...
age 10
name tom
>>>
>>> d2.get('name')
'xpg'
>>> d2.get('num',9)
9
>>> d2
{(1, 2): 'qq', 'name': 'xpg'}
>>>
>>> d2.has_key('name')
True
>>> d2.has_key('name2')
False
>>>
>>> d
{'age': 10, 'name': 'tom'}
>>> d['phone'] = 111
>>> d
{'phone': 111, 'age': 10, 'name': 'tom'}
>>> d['name'] = 'jerry'
>>> d
{'phone': 111, 'age': 10, 'name': 'jerry'}
>>>
>>> d2 = {'c':2,'s':3}
>>> d3 = d2
>>> id(d3)
23222480
>>> id(d2)
23222480
>>> d3
{'c': 2, 's': 3}
>>> d2
{'x': 4, 'c': 2, 's': 3}
>>> d4 = d2.copy()
>>> d4
{'x': 4, 'c': 2, 's': 3}
>>> d2
{'x': 4, 'c': 2, 's': 3}
>>> id(d4)
23213856
>>> id(d2)
23222480
>>>
>>> li
[1, 2, 3]
>>> j = 0
>>> for i in li:
... li[j] = i+1
... j += 1
...
>>> li
[2, 3, 4]
>>> li
[2, 3, 4]
>>> li2 = [i for i in li]
>>> li2
[2, 3, 4]
>>> id(li)
24512560
>>> id(li2)
24512632
>>> li
[2, 3, 4]
>>> li2 = [i+1 for i in li]
>>> li2
[3, 4, 5]
>>> id(li2)
24580968
>>> id(li)
24512560
>>> li3 = []
>>> for i in li:
... li3.append(i+1)
...
>>> li3
[3, 4, 5]
迭代器 特点 可以直接执行 .net 每执行一次有一个结果
for i in 迭代器:遇到stop退出
迭代器性能高于for 循环
for 循环作用就是自动执行迭代器
生成器 it = (i+1 for i in li)不执行 当执行.net时才执行 相当于迭代器
>>> li
[2, 3, 4]
>>> it = (i+1 for i in li)
>>>
>>> it
<generator object <genexpr> at 0x176d730>
>>> it.next()
3
>>> it.next()
4
>>> it.next()
5
>>> it.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
>>>
列表是一次性全给你
当数据量大时,生成器性能好
列表解析性能远高于for循环
迭代器(惰性)性能远高于与列表解析
>>> li
[2, 3, 4]
>>> li2 = [i+1 for i in li if i%2 ==0 ]
>>> li2
[3, 5]
>>> li3 = []
>>> for i in li:
... if i %2 == 0:
... li3.append(i+1)
...
>>> li3
[3, 5]
>>>
转载于:https://blog.51cto.com/11726212/1789071
python 基础相关推荐
- f是一个python内部变量类型,Python基础变量类型——List浅析
Python使用list 一.list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示 ...
- python 等号报错_Python学习----Python基础
Python基础 一.数据类型和变量 1.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量. 例如: a =520# a是整数prin ...
- python基础——继承与派生、组合
python基础--继承与派生 1 什么是继承: 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类成为基类或超累,新建的类成为派生类或子类 1.1 继承分为:单 ...
- Python学习笔记1 Python基础
第1章 Python基础 1.1 Python概述及版本介绍 1.Python是一种面向对象的解释型计算机程序设计语言(解释型语言源代码->解释器逐行解释每一句源代码) 2.优点:高级语言.可移 ...
- python基础---元组、字典、函数、文件、异常
文章目录 python基础---元组.字典.函数.文件.异常 Tuple(元组) 常用操作 dict(字典) 函数 文件 异常 python基础-元组.字典.函数.文件.异常 Tuple(元组) tu ...
- 快速掌握Python的捷径-Python基础前传(1)
文: jacky(朱元禄) 开文序 最近看新闻,发现高考都考Python了,随着人工智能的火热,学数据科学的人越来越多了!但对于数据行业本身来说,现象级的火热,这并不是什么好事. 方丈高楼平地起,无 ...
- Python培训教程之Python基础知识点梳理
Python语言是入门IT行业比较快速且简单的一门编程语言,学习Python语言不仅有着非常大的发展空间,还可以有一个非常好的工作,下面小编就来给大家分享一篇Python培训教程之Python基础知识 ...
- python基础04
python基础04 python2在编译安装时,可以通过参数 -----enable----unicode=ucs2 或 -----enable--unicode=ucs4 分别用于指定使用2个字节 ...
- 刻意练习:Python基础 -- Task12. 模块
背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...
- 刻意练习:Python基础 -- Task11. 魔法方法
背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...
最新文章
- MLIR(Multi-Level Intermediate Representation Compiler)架构 Infrastructure
- Spring Boot怎么样处理静态资源(静态资源映射规则)_Web开发
- java客户端访问kafka
- java影院购票系统开题报告,开题报告-网上电影院购票系统的设计与实现.doc
- 自动化部署之jenkins及简介
- tnsname.ora 个参数解释
- jquery 遍历无限极树_jQuery parent()和children()树遍历函数示例
- POJ2826 An Easy Problem?!
- abrt-hook-ccpp: Saved core dump of pid 12224导致dn挂掉问题
- 常用评价指标及其Python实现
- 与孩子一起学编程07章
- java英语单词查询,输入一个单词根据字典查询单词意思
- UWB测距及定位原理
- android 添加前景色
- redefinition of class解决
- 微擎mysql和redis_微擎如何开启redis,redis开启方法详解
- MIDI音符输入技巧
- 设置-关于手机里显示IMEI号和MEID。
- es5和es6声明类的区别/es5和es6继承的区别
- 2级c语言高级应用程序,全国计算机等级考试二级教程-C语言程序设计.pdf
热门文章
- [Cocos2d-x]视差滚屏效果的实现
- apache-2.4.x 编译安装方法
- 在 Ubuntu 下安装 Discuz! 7.0
- 贴别人的一个文件加密程序!
- Xmas is coming....
- php删除指定图片吗,PHP 去除图片指定颜色
- 代码如何获取单反相机拍摄的照片_看看如何拍摄出更好的照片
- 引人遐想,用 Python 获取你想要的 “某个人” 摄像头照片
- windows操作系统_如何正确使用windows操作系统?
- php 批量导出excel文件,PHPEXCEL批量导出