python 列表和字符串

python 列表中保留全部字符串前三項,並保存到一個新的列表
l = [s[:3] for s in data]


python 在列表中查找包含因此某個字符串的項,並保存到一個新的列表

l = [s for s in data if 'FF' in s]


# 兩個list的差集,並集和交集
http://www.javashuo.com/article/p-mjuyalci-nb.html
方法一:
list1 = ['a','b','c']
list3 = list1
list2 = ['a']
for i in list2:
    list3.remove(i)
    
list3
Out[7]: ['b', 'c']
方法二:
list3 = list(set(list1) - set(list2))
 
 

 



#
列表相除、列表相加
import numpy as np a=[1,2] #一、獲得列表 <class 'list'> b=[i/2 for i in a];print(b) #二、獲得<class 'numpy.ndarray'> b=np.array(a)/2;print(b) #多個列表加減,用numpy c=np.array(a)+np.array(b)*2 print(c)

#不一樣長度數據放到一塊兒,用numpy和pandas都不太好處理
#用list則比較好處理
a=[]
a.append([1,2])
a.append([2,3,4,5,5])
pd.DataFrame(a)

#判斷元素個數
#發現pandas和numpy都很差處理
[1,2,3,1,2,'a','b','a'].count('a') 獲得'a'出現個數

 #求兩個list差集、交集和並集 http://www.jb51.net/article/56980.htm
 a = [1,2,3]; b = [2,3,4] #想要的結果是[1] [4] [2,3] [1,2,3,4]
 aa=[i for i in a if i not in b] #[1]
 bb=[i for i in b if i not in a] #[4]
 cc=[i for i in a if i in b] #[2,3]
 a.extend(b); a[-1:-1]=b; a[0:0]=b; a[1:1]=b #能夠插到不一樣位置,再去重python

 #簡單的list去重編程

 a=[1,2,3,2,4,3,1]app

 a=list(set(a)) #set(a):{1,2,3,4}   a:[1,2,3,4]#python list遍歷時同時跟蹤正在被處理的元素索引編程語言

my_list=['a','b','c']
for idx,val in enumerate(my_list):
  print(idx,val)
#能夠再結合Series.index[idx]獲得索引名稱,用loc[Series.index[idx],columns_name]選取指定位置值

#替換 replace
‘abcd'.replace('a','x') #將‘a'替換爲‘x’ 結果'xbcd'

#合併拼接字符串

parts=['is','chicago','not','chicago?']
' '.join(parts)
',',join(parts)
''.join(parts)

#字符串截取
string.split('key') #string在key地方截爲兩段

#用index()方法在列表中查找值
spam=['hello','hi','howdy','heyas']
spam.index('hello') #0

#append() insert() remove() 是列表方法
#注意獲得新的list就是append和insert後的,不用賦值
#列表被當場修改
spam.append('moose')
spam.insert(1,'chicken')
spam.remove('hello') #若是該值出現屢次,只有第一次出現值會被刪除

#sort() 將列表中的值排序
sort()方法當場對列表排序 不能對既有數字又有字符串值的列表排序
sort()方法對字符串排序時, 使用「ASCII 字符順序」, 而不是實際的字
典順序。這意味着大寫字母排在小寫字母以前。所以在排序時, 小寫的 a 在大寫的
Z 以後。 若是須要按照普通的字典順序來排序, 就在 sort()方法調用時, 將關鍵字參數
key 設置爲 str.lower

spam.sort(reverse=True)
spam=['a','z','A','Z']
spam.sort(key=str.lower) #['a', 'A', 'z', 'Z']

#若是元組中只有一個值, 你能夠在括號內該值的後面跟上一個逗號, 代表這種
狀況。 不然, Python 將認爲, 你只是在一個普通括號內輸入了一個值。逗號告訴
Python, 這是一個元組(不像其餘編程語言, Python 接受列表或元組中最後表項後
面跟的逗號)。在交互式環境中, 輸入如下的 type()函數調用, 看看它們的區別:
>>> type(('hello',))
<class 'tuple'>
>>> type(('hello'))
<class 'str'>

#用 list()和 tuple()函數來轉換類型

變量包含對列表值的引用, 而不是列表值自己。但對於字符串和整數值, 變量
就包含了字符串或整數值。在變量必須保存可變數據類型的值時, 例如列表或字典,
Python 就使用引用。對於不可變的數據類型的值, 例如字符串、 整型或元組, Python
變量就保存值自己。
>>> spam = 42
>>> cheese = spam
>>> spam = 100
>>> spam
100
>>> cheese
42
>>> spam = [0, 1, 2, 3, 4, 5]
>>> cheese = spam
>>> cheese[1] = 'Hello!'
>>> spam
[0, 'Hello!', 2, 3, 4, 5]
>>> cheese
[0, 'Hello!', 2, 3, 4, 5]
Python 提供了名爲 copy 的模塊, 其中包含 copy()deepcopy()函數
若是要複製的列表中包含了列表, 那就使用 copy.deepcopy()函數來代替。
>>> import copy
>>> spam = ['A', 'B', 'C', 'D']
>>> cheese = copy.copy(spam)
>>> cheese[1] = 42
>>> spam
['A', 'B', 'C', 'D']
>>> cheese
['A', 42, 'C', 'D']
#元組不可修改是元組中的元素不可修改,元組變量能夠賦值修改
temp=('a','b','c','d')
temp=temp[:2]+('e',)+temp[2:] #('a','b','e','c','d')

 2.一、表 6-1 轉義字符

轉義字符 打印爲
\'        單引號
\"       雙引號
\t       製表符
\n      換行符
\\       倒斜槓函數

2.二、字符串方法 upper()、 lower()、 isupper()和 islower()

upper()全大寫、lower()全小寫、isupper() islower() 若是字符串至少有一個字母, 而且全部字母都是大寫或小寫, isupper()和islower()方法就會相應地返回布爾值 True。不然, 該方法返回 False。spa

除了 islower()和 isupper(), 還有幾個字符串方法,它們的名字以 is 開始。這些
方法返回一個布爾值, 描述了字符串的特色。下面是一些經常使用的 isX 字符串方法:
 isalpha()返回 True, 若是字符串只包含字母, 而且非空;
 isalnum()返回 True,若是字符串只包含字母和數字,而且非空;
 isdecimal()返回 True,若是字符串只包含數字字符,而且非空;
 isspace()返回 True,若是字符串只包含空格、製表符和換行,而且非空;
  istitle()返回 True,若是字符串僅包含以大寫字母開頭、後面都是小寫字母的單詞。.net

請注意, 這些方法沒有改變字符串自己, 而是返回一個新字符串。若是你但願改
變原來的字符串, 就必須在該字符串上調用 upper()或 lower(), 而後將這個新字符串
賦給保存原來字符串的變量。這就是爲何必須使用 spam = spam.upper(), 才能改變
spam 中的字符串, 而不是僅僅使用 spam.upper()code

三、字符串方法 startswith()和 endswith()

若是隻須要檢查字符串的開始或結束部分是否等於另外一個字符串, 而不是整個字符串, 這些方法就能夠替代等於操做符==,這頗有用。htm

四、字符串方法 join()和 split()

若是有一個字符串列表, 須要將它們鏈接起來,成爲一個單獨的字符串, join()方法就頗有用。 join()方法在一個字符串上調用, 參數是一個字符串列表, 返回一個
字符串。返回的字符串由傳入的列表中每一個字符串鏈接而成。
split()方法作的事情正好相反:它針對一個字符串調用, 返回一個字符串列表。
', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
'My name is Simon'.split()
['My', 'name', 'is', 'Simon']blog

一個常見的 split()用法, 是按照換行符分割多行字符串。在交互式環境中輸入
如下代碼:
>>> spam = '''Dear Alice,
How have you been? I am fine.
There is a container in the fridge
that is labeled "Milk Experiment".
Please do not drink it.
Sincerely,
Bob'''
>>> spam.split('\n')
['Dear Alice,', 'How have you been? I am fine.', 'There is a container in the
fridge', 'that is labeled "Milk Experiment".', '', 'Please do not drink it.',
'Sincerely,', 'Bob']

五、用 rjust()、 ljust()和 center()方法對齊文本

>>> 'Hello'.rjust(10)
'      Hello'
>>> 'Hello'.rjust(20)
'                Hello'
>>> 'Hello World'.rjust(20)
'          Hello World'
>>> 'Hello'.center(20, '=')
'=======Hello========’

六、用 strip()、 rstrip()和 lstrip()刪除空白字符

>>> spam = '   Hello World   '>>> spam.strip()'Hello World'>>> spam.lstrip()'Hello World   '>>> spam.rstrip()'   Hello World'

相關文章
相關標籤/搜索