专栏首页祥子的故事第六章:序列--字符串、列表和元组

第六章:序列--字符串、列表和元组

  • 访问次序

6.1 序列

  • 访问模式:它的每一个元素可以通过指定的一个偏移量的方式得到。而多个元素可以通过切片操作的方式一次得到,下标偏移量从0开始到总元素数-1结束。

6.1.1 标准类型操作符

适用于所有的序列类型

6.1.2 序列类型操作符

  • 成员关系操作符 in ,not , in 返回值为 True / False

语法:

  • obj [not ] in sequence
  • seq[ind] 获得下标为ind的元素
  • seq[ind1 : ind2] 获得下标从ind1到ind2间的元素集合
  • seq * expr 序列重复expr次
  • seq1 + seq2 连接序列seq1 和 seq2
  • obj in seq 判断obj 元素是否包含在seq中
  • obj not in seq 判断obj 元素是否不包含在seq中
  • 连接操作符(+) 把一个序列和另一个相同类型的序列做连接
  • 重复操作符(*) 把一个序列多次拷贝
  • 切片操作符([],[ : ], [ : ; ]) 用方括号加一个下标的方式访问它的每一个元素,或者通过在方括号中用冒号把开始下标和结束下标分开的方式来访问一组连续的元素。

例子

names = ('Faye','Leanna','Daylen')
print names[2]

names = ('Faye','Leanna','Daylen')
print names[:]

names = ('Faye','Leanna','Daylen')
print names[::]

例子: 翻转

s = 'abcdefgh'
print  s[::-1]

例子:比较

s = 'abcde'
for i in [None] + range(-1,-len(s),-1):
    print s[:i],

结果

abcde abcd abc ab a

例子

for i in range(-1,-len(s),-1):
    print s[:i],

结果

abcd abc ab a

6.1.3 内建函数

类型转换

  • list列表
  • str字符
  • tuple元组
  • reversed(seq) 返回一个以逆序访问的迭代器
  • zip() 返回一个列表

例子

a = range(3)
b = range(5)
print zip(a,b)

结果

[(0, 0), (1, 1), (2, 2)]
  • 字符串的创建和赋值

例子

a = 'Hello World!' 
print a

结果

Hello World!
  • 访问字符串的值

例子

a = 'Hello World!'
print a[1]

结果

e
  • 改变字符串

结果

a = 'Hello World!'
print a[:5] + 'python!'

结果

Hellopython!

删除字符和字符串

  • 方法一:

例子

a = 'Hello World!'
print a[:3] + a[4:]

结果

Helo World!
  • 方法二:

例子

a = 'Hello World!'
del a

6.3 字符串和操作符

6.3.1 标准类型操作符

  • 按照ASCII值来比较大小
  • < !=

6.3.2 序列操作符

  • 切片[] 和 [:] 正向索引 、 反向索引 、默认索引
  • 成员操作符(in , not in)
  • 连接符(+)

例子

print 'Spanish' + 'Inquisition'
print 'Spanish' + ' ' +  'Inquisition'

结果

SpanishInquisition
Spanish Inquisition
  • join

例子

s  = ' '.join(('Spanish','Inquisition','Made Easy'))
print s

结果

Spanish Inquisition Made Easy
  • 普通字符串转化为Unicode字符串

例子

print 'Hello' +  u' ' +  'World' +  u'!'

结果

Hello World!
  • 重复操作符(*)
  • 十六进制输出

例子

print "%x" % 108 ,"%X" % 108 , "%#X" % 108 ,"%#x" % 108

结果

6c 6C 0X6C 0x6c
  • 浮点数和科学计数法的输出

例子

print '%f' % 1234.567890
print '%.2f' % 1234.567890
print '%E' % 1234.567890
print '%e' % 1234.567890
print '%g' % 1234.567890
print '%G' % 1234.567890
  • 整数和字符串输出

例子

print "%+d" % 4
print "%+d" % -4
print "we are at %d%%" % 100
print 'Your host is: %s' % 'earth'

结果

+4
-4
we are at 100%
Your host is: earth

6.5 内建函数

  • cmp() 根据字符串的ASCII码值进行比较

例子

str1 = 'abc'
str2 = 'lmn'
str3 = 'xyz'
print  cmp(str1, str2),cmp(str3,str1),cmp(str2,'lmn')

结果

-1 1 0
  • len()
  • max () and min () 对于字符,返回ASCII码值最小的字符

例子

enumerate()
s = 'foobar'
for i,t in enumerate(s):
    print i,t

结果

0 f
1 o
2 o
3 b
4 a
5 r

例子

zip()
s,t = 'foa','obr'
print zip(s,t)

结果

[('f', 'o'), ('o', 'b'), ('a', 'r')]
  • raw_input() 提示用户输入
  • 列表、元组
  • 列表 [] list
  • 元组 () tuple

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 百度再出Lens黑科技!用PaddleMobile实现类人眼视觉AI能力

    你知道吗?人类有 70%的信息获取来自于视觉。但目前存在两个问题: ①人眼本身只能看到物理世界,无法看到其背后复杂的信息世界; ②人类的记忆力有限,视野有限,于...

    用户1386409
  • 2018年最实用机器学习项目Top 6(附开源链接)

    过去一年,是人工智能和机器学习蓬勃发展的一年。许多高影响力的机器学习应用被开发出来,特别是在医疗保健、金融、语音识别、增强现实以及更复杂的3D和视频应用中。

    新智元
  • AI可提前6年识别老年痴呆症,准确率高达98%

    研究人员利用一种常见的脑部扫描编写了一种机器学习算法,在确诊出早期阿尔茨海默症(Alzheimer 's disease,又称老年痴呆症)前大约6年前就可以做出...

    新智元
  • 一日一技:使用栈实现调度场算法

    使用调度场算法可以将中缀表达式转换为逆波兰式。调度场算法是通过栈来实现的。操作数直接输出,符号需要判断优先级来判断应该直接压栈还是直接输出或者应该先将栈顶元素输...

    青南
  • 王思聪庆祝iG夺冠,微博抽奖猫腻何在?

    iG在英雄联盟决赛上夺冠一声炮响,将这一游戏圈内部的赛事变成了全民事件。微信朋友圈、微博等平台,懂的不懂的,都开始谈论起这件事情来。iG战队的老板王思聪为庆祝i...

    用户1569917
  • 一日一技:逆波兰式

    逆波兰表示法(Reverse Polish notation,RPN,或逆波兰记法),是一种是由波兰数学家扬·武卡谢维奇1920年引入的数学表达式方式,在逆波兰...

    青南
  • 二分图详解

           本篇博客主要讲解什么是二分图,怎样判断二分图,匈牙利算法和HK(Hopcroft-Karp)算法,以及二分图多重匹配。

    Ch_Zaqdt
  • 谷歌今年首个AI实验室即将开门,联合普林斯顿,专注机器学习

    谷歌与普林斯顿大学合作的AI实验室将于本月启用,实验室将通过建立一个合作项目来推进人工智能的研究,从而扩大新泽西州蓬勃发展的创新生态系统。

    新智元
  • 一日一技:使用异或寻找孤独的数

    有一个无序的列表,里面有2n + 1个数。其中有n个各出现了2次,另有唯一一个数只出现了1次。使用时间复杂度为O(1),空间复杂度为O(1)的算法找出这个只出现...

    青南
  • HDU 2255 奔小康赚大钱(二分图最佳匹配--KM算法)

            二分图带全匹配的裸题,直接贴板子就行,对于二分图最佳匹配可以用网络流去写,还有KM算法也可以解决这个问题,这个算法的中心思想就是依次选择最大权的...

    Ch_Zaqdt

扫码关注云+社区

领取腾讯云代金券