python学习-字符串 列表 元祖

Posted Tina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习-字符串 列表 元祖相关的知识,希望对你有一定的参考价值。

[TOC]

@(B5 python)[python]

Python翻转字符串(reverse string)

简单的步长为-1, 即字符串的翻转(常用)

def reverse1():
    s=input("请输入需要反转的内容:")
    return s[::-1]
reverse1()
def reverse2(s):
    if s=="":
        return s
    else:
        return reverse2(s[1:])+s[0]
s=reverse2("sidfmawsmdisd是当面问")
print(s)

递归反转

借用列表,使用reverse()方法

l=['a', 'b', 'c', 'd']
 l.reverse()

字符串常用操作

index

跟find()方法一样,只不过如果str不在 mystr中会报一个异常.

mystr.index(str, start=0, end=len(mystr))

name="hello word ha ha"
print(name.index("h"))

split 切片 mystr

空白字符:空格、tab、换行、回车以及formfee
当不给split函数传递任何参数时,分隔符sep会采用任意形式的空白字符:空格、tab、换行、回车以及formfeed。maxsplit参数表明要分割得到的list长度。

Python split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
语法
split()方法语法:
str.split(str="", num=string.count(str)).
参数
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。
返回值
返回分割后的字符串列表。
name="hello word ha ha"
s=name.split(" ",2)
print(s[0])
print(s[1])

capitalize

mystr.capitalize()

title

a = "hello itcast"
a.title()
‘Hello Itcast‘

startswith

检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False
mystr.startswith(obj)

endswith

检查字符串是否以obj结束,如果是返回True,否则返回 False.

mystr.endswith(obj)

lower

转换 mystr 中所有大写字符为小写

mystr.lower()

upper

转换 mystr 中的小写字母为大写

mystr.upper()

列表的常见操作

添加元素("增"append, extend, insert)

@append方法是在列表末尾追加新的元素。只可以一个一个地添加,如果你不想这么麻烦,请看下一种方法extend。

@extend方法是在列表末尾一次性追加另一个列表中的多个值。

@insert方法就可以在列表(list)的任何位置插入元素。

append可以向列表添加元素

extend将另一个集合中的元素逐一添加到列表中

insert在指定位置index前插入元素object

查找元素("查"in, not in, index, count)

if语句

testStr="haha nihao a \t heihei \t  woshi nide \t haopengyou"
if "ha" in testStr:
    print("ha")
else:
    print("hwa")

删除元素("删"del, pop, remove)

for i in range(5)

a = ['a', 'b', 'c', 'a', 'b']
for i in range(5):
    print(a)

两个间比较

a = ['a', 'b', 'c', 'a', 'b']
for i in a:
    print(i)

列表的嵌套

#!/usr/bin/env python
# -*- coding:  utf-8 -*-
schoolNames = [['北京大学','清华大学'],['南开大学','天津大学','天津师范大学'],['山东大学','中国海洋大学']]
print(schoolNames[0])

==Impl==
一个学校,有3个办公室,现在有5位老师等待工位的分配,请编写程序,完成随机的分配

#!/usr/bin/env python
#encoding=utf-8
import random
offices =[[],[],[]]
names=['a','b','c','d','e']
i=0
for name in names:
    index=random.randint(0,2)
    offices[index].append(name)
i=1
for tempNames in offices:
    print('办公室%d的人数为%d'%(i,len(tempNames)))
    i+=1
    for name in tempNames:
        print("%s"%name,end='')
        print("\n")
        print("-"*20)

办公室1的人数为3
b


d


e


办公室2的人数为1
c


办公室3的人数为1
a


元祖

元祖的创建

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

创建空元组
tup1 = ();
元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,);
元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
技术分享图片
技术分享图片

a = (‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘b‘)
a.index(‘a‘, 1, 3) # 注意是左闭右开区间
Traceback (most recent call last):
File "", line 1, in
ValueError: tuple.index(x): x not in tuple
a.index(‘a‘, 1, 4)
3
a.count(‘b‘)
2
a.count(‘d‘)
0

修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,
元组中只包含一个元素时,需要在元素后面添加逗号

#!/usr/bin/env python
#encoding=utf-8
a = (1,'a')
b=('1',)
a=a+b
print(a)
print(b)

删除元组

#!/usr/bin/python

tup = ('physics', 'chemistry', 1997, 2000);

print tup;
del tup;
print "After deleting tup : "
print tup;

以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
(‘physics‘, ‘chemistry‘, 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test.py", line 9, in
print tup;
NameError: name ‘tup‘ is not defined

对于不可变的元组(tuple)是不是真的不可以改变呢?
如果你使用了元组这个东西,然而你又想在某个地方改变它,怎么办呢?

#!/usr/bin/env python
#encoding=utf-8
tup = ('physics', 'chemistry', 1997, 2000);
list_=list(tup)
list_.insert(1, 122)
tup=tuple(list_)
print(tup)

以上是关于python学习-字符串 列表 元祖的主要内容,如果未能解决你的问题,请参考以下文章

python学习第二周(数据类型字符串列表元祖字典)

python的数据类型字符串列表字典元祖集合编码补充等

Python列表(list)、元祖(tuple)、集合(set),和字典(dictionary)区别和联系

python学习5--序列的概念

Python基础知识_学习笔记

python学习笔记1 循环列表元祖数据类型