python变量类型

字符串类型

字符串可以使用多种语法表示:

# 单引号
' string '
# 双引号
" string "
# 省略转义符\
r' string '
# 多行字符
''' string
string '''
# 字符串拼接
print('string1' + 'string2')

python支持中文字符串,使用语法:

u'中文\n'
ur'中文'
u'''中文
中文'''

当python编译中文字符串出错时,可能是因为python代码保存编码格式错误,可以在文件首行添加:

# -*- coding: utf-8 -*-

字符串可以通过%和%s进行格式化:

string = ['the age of %s is %s' % (name, age)]

Bool类型

取值True/False,并将0 ' ' None视为False,将其他数值和非空字符串视为True
运算符号:

  • 与--and
  • 或--or
  • 非--not

集合类型

list列表类型

list中的元素类型不要求是同一种数据类型,表示为:

# 空列表
list = []
# 多元素列表
list = ['ylonge', 100, true]

list元素索引

list列表变量的元素通过编号索引,表示为:

# 正序索引的编号从0开始
list[0]
# 倒序索引的编号从-1开始
list[-1]

向list中附加和插入元素

元素添加的语法:

#在list尾部附加新元素
list.append(elem)
#在list中idx编号位置插入新元素
list.insert(idx, 'paul')

删除list中元素

# 删除list末尾元素并输出该元素
list.pop()
# 删除idx编号位置的元素并输出该元素
list.pop(2)

替换list中元素

# 直接对idx位置元素赋值以完成替换
list[idx] = 'yu'

tuple类型

tuple类型变量存储列表元素,与list不同的是,tuple变量经初始化后不能修改元素,只能访问元素:

# 空tuple
tuple = ()
# 单元素,为了避免圆括号被视为算术符号,多加一个逗号
tuple = (1,)
# 多元素tuple
tuple = ('yu', 'li', 200)

尽管tuple指向的元素不可变,但是被指向的元素指向的内容是可变的,类似于指针本身不可变,但是指针指向的元素是可变的。

dict查找表

dict变量可以建立索引key和索引值value,表示为:

dict = {
    # 通过key:value建立索引关系
    'key1' : val1,
    'key2' : val2,
    'key3' : val3
}

dict有几个特点:

  • dict的优点是元素索引速度快,缺点是占用内存大;list的优点是占用内存小,元素索引速度慢。
  • dict存储的元素是无序的。
  • dict的key不能重复且值不可变。

访问dict元素

# 通过key访问value
if 'key1' in dict :
    print(dict['key1'])
# 通过get(key)访问value,如果key不存在,get()返回None
print( dict.get('key2') )
# 通过for循环遍历key
for key in dict :
    print key

添加或修改dict元素

# 如果key不存在,则添加元素
dict['key4'] = val4

# 如果key存在,则修改value
dict['key2'] = val5

set类型

set记录一组不重复且无序的元素,表示为:

st = set(['a', 'b', 'c'])

set类型变量的特点:

  • 当set被赋予重复元素时,set会自动删除重复元素。
  • set中的元素不能被索引访问,可以通过in检查元素是否存在;但是可以通过遍历访问,不过元素的顺序是不固定的。
  • set中元素的索引速度快。
  • set中元素不可变。
  • set中元素是无序存储的。
  • set可以用于检查变量取值范围的查表验证。

更新set

set中的元素不能被修改,但是可以删除元素或增加元素。

# 使用add()添加元素,但set会自动忽略已有元素
st.add('d')
# 使用remove()删除元素,如果元素不存在,则报错。
st.remove('d')

## len访问集合长度
```python
len(list)
len(tuple)
len(dict)

集合的切片功能

当获取list\tuple\string的部分连续元素时,可以使用slice切片的方法,类似于matlab的数组操作:

L = [1,2,3,4]
# 取编号为a~b的元素,要求a < b,无论正负
L[a:(b+1)] # 编号为b+1的元素不被获取
L[:(b+1)] # 当a=0时,可以省略起始项
# 取从头到尾的元素
L[:]
# 从a~b隔s个元素取一个元素
L[a:(b+1):s]

切片操作会将元素拷贝到新的list\tuple中。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容