码迷,mamicode.com
首页 > 编程语言 > 详细

python 学习笔记

时间:2017-08-22 16:04:03      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:tutorial   创建   初始化   perl   type   enumerate   -o   统一   ops   

 

显示类型

Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import types
>>> type([])
<class list>
>>> type(1)
<class int>

 上面试在REPL中操作的,, 如果在源码文件中要显示类型则要加上print

import types
print(type([]))
a = 123;
print(type(a))

 

常用数据结构

list

list 是可变长度的, 可以动态添加元素, 元素类型不要求统一, 有序,可重复

创建空list , 两种方式

alist = []
blist = list()

 直接创建带元素的list

alist = [one, two, 3, True];

 

在末尾追加元素

alist.append(four) # api list.append(obj)

 

在指定索引位置增加元素

alist.insert(1, one point five) # api list.insert(index, obj)

查询某个索引位置的元素

element1 = alist[0]
element2 = alist[2]
print(element1)
print(element2)

 

修改某个索引位置的元素

alist[3] = three

删除某个索引位置的元素, 知道索引位置的时候使用

alist = [1, 2 ,3, 4]
a = alist.pop(1)  # 删除api , 参数 要删除的位置, 返回值 被删除的元素
print(a)  # 2
print(alist) #[1, 3, 4]
alist.pop()  # 不给参数时 删除末尾
print(alist) # [1, 3]

 

删除除某个元素, 不知道索引位置的时候

alist = [1, 2, 2, 3]
alist.remove(2) # 删除api , 参数是想要删除的元素,如果元素值有重复的,只会删除最靠前的。 没有返回值
print(alist) #[1, 2, 3]

获取list 长度

size = len(alist)
print(size)

遍历list

for v in alist:
    print(v) # v 是元素值

遍历的时候还要拿到索引

for idx, val in enumerate(alist):
    print(idx, val) # idx是索引, val是元素值

 

 参考:http://stackoverflow.com/questions/522563/accessing-the-index-in-python-for-loops

 

获取某一个值的元素有几个

list = [1, 2 , 2, 4, a, a,b]
print(list.count(2)) #2
print(list.count(a)) #2

获取最大元素

llist = [1, 2 , 3, 4, True]
max = max(list) # api
print(max) # 4

混合类型的list 使用这个api 要小心, 比如 int 和 str混合会出错

list = [1, 2 , 3, 4, a]
max = max(list)
print(max)

运行报错
Traceback (most recent call last):
  File "c:\Users\myname\Documents\pythonporjects\test.py", line 5, in <module>
    max = max(list)
TypeError: > not supported between instances of str and int

 

 

tuple

元组的元素一旦确定不可更改,只能查询, 元组本身也不能增加或删除元素。 元素类型不要求统一, 有序, 可重复

创建空tuple, 两种方式

atuple = ()
btuple = tuple()

空tuple的用处不多 所以通常创建就初始化tuple的元素

atuple = (1, 2 , 2, 4, a, b)
print(atuple)

只有一个元素的tuple 应该这样

atuple = (1, )
print(atuple)

查询元素

atuple = (1, 2 , 2, 4, a, b)
print(atuple[0])
print(atuple[1])

如果尝试修改元素值则会报错

atuple[0] = 0
Traceback (most recent call last):
  File "c:\Users\myname\Documents\pythonporjects\test.py", line 8, in <module>
    atuple[0] = 0
TypeError: tuple object does not support item assignment

 

获取tuple长度

t = (1, 2, 3)
size = len(t) #api
println(size)

 

获取某一个值的元素有几个

t = (1, 2 , 2, 4, a, a,b)
print(t.count(2)) # 2
print(t.count(a)) # 2

 

获取最大的元素, 参考 list 章节

tuple unpacking

t = (1 ,2)
a , b = t
print(a) # 1
print(b) # 2

参考 http://stackoverflow.com/questions/10867882/tuple-unpacking-in-for-loops

 

set

set 类似于数学中的集合, 元素无序,元素不可重复

创建空set 只有一种方式

aset = set()

 遍历set , 因为无序所以不存在索引

for el in aset:
    print(el)

 

遍历一个在遍历时增长长度的set

 

http://stackoverflow.com/questions/28584470/iterating-over-a-growing-set-in-python

创建空dictionary, 两种方式

adict = {}
bdict = dict()

 

遍历dictionary

只遍历key

for k in adict:
    print(k) # k

遍历key 和 value

for key, value in adict.items():
    print(key, value)

参考 http://stackoverflow.com/questions/3294889/iterating-over-dictionaries-using-for-loops-in-python

 

时间和日期处理

 

#!/usr/bin/python
# -*- coding:utf-8 -*-
import time

a = time.time()
print("timestamp" , a)
a = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) 
print("now is", a)
a = time.localtime()
year = a.tm_year
print("year is", year)

更多参考 Python 日期和时间 | 菜鸟教程 http://www.runoob.com/python/python-date-time.html

 

 

参考 

http://www.runoob.com/python/python-tutorial.html

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

http://stackoverflow.com/questions/tagged/python

https://www.dotnetperls.com/python

python 学习笔记

标签:tutorial   创建   初始化   perl   type   enumerate   -o   统一   ops   

原文地址:http://www.cnblogs.com/lonkiss/p/python-note.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!