1. 程式人生 > >python學習-字符串 列表 元祖

python學習-字符串 列表 元祖

pub trace itcast 註意 兩個 方法 line 分享圖片 efi

[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學習-字符串 列表 元祖