python 列表中保留所有字符串前三項,並保存到一個新的列表
l = [s[:3] for s in data]
python 在列表中查找包含所以某個字符串的項,並保存到一個新的列表
l = [s for s in data if 'FF' in s]
# 兩個list的差集,並集和交集
https://blog.csdn.net/liao392781/article/details/80577483
方法一:
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] #1、得到列表 <class 'list'>
b=[i/2 for i in a];print(b) #2、得到<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 #可以插到不同位置,再去重
#簡單的list去重
a=[1,2,3,2,4,3,1]
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.1、表 6-1 轉義字符
轉義字符 打印為
\' 單引號
\" 雙引號
\t 制表符
\n 換行符
\\ 倒斜杠
2.2、字符串方法 upper()、 lower()、 isupper()和 islower()
upper()全大寫、lower()全小寫、isupper() islower() 如果字符串至少有一個字母, 並且所有字母都是大寫或小寫, isupper()和islower()方法就會相應地返回布爾值 True。否則, 該方法返回 False。
除了 islower()和 isupper(), 還有幾個字符串方法,它們的名字以 is 開始。這些
方法返回一個布爾值, 描述了字符串的特點。下面是一些常用的 isX 字符串方法:
isalpha()返回 True, 如果字符串只包含字母, 並且非空;
isalnum()返回 True,如果字符串只包含字母和數字,並且非空;
isdecimal()返回 True,如果字符串只包含數字字符,並且非空;
isspace()返回 True,如果字符串只包含空格、制表符和換行,並且非空;
istitle()返回 True,如果字符串僅包含以大寫字母開頭、后面都是小寫字母的單詞。
請注意, 這些方法沒有改變字符串本身, 而是返回一個新字符串。如果你希望改
變原來的字符串, 就必須在該字符串上調用 upper()或 lower(), 然后將這個新字符串
賦給保存原來字符串的變量。這就是為什么必須使用 spam = spam.upper(), 才能改變
spam 中的字符串, 而不是僅僅使用 spam.upper()
3、字符串方法 startswith()和 endswith()
如果只需要檢查字符串的開始或結束部分是否等於另一個字符串, 而不是整個字符串, 這些方法就可以替代等於操作符==,這很有用。
4、字符串方法 join()和 split()
如果有一個字符串列表, 需要將它們連接起來,成為一個單獨的字符串, join()方法就很有用。 join()方法在一個字符串上調用, 參數是一個字符串列表, 返回一個
字符串。返回的字符串由傳入的列表中每個字符串連接而成。
split()方法做的事情正好相反:它針對一個字符串調用, 返回一個字符串列表。
', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
'My name is Simon'.split()
['My', 'name', 'is', 'Simon']
一個常見的 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']
5、用 rjust()、 ljust()和 center()方法對齊文本
>>> 'Hello'.rjust(10)
' Hello'
>>> 'Hello'.rjust(20)
' Hello'
>>> 'Hello World'.rjust(20)
' Hello World'
>>> 'Hello'.center(20, '=')
'=======Hello========’
6、用 strip()、 rstrip()和 lstrip()刪除空白字符
>>> spam = ' Hello World '
>>> spam.strip()
'Hello World'
>>> spam.lstrip()
'Hello World '
>>> spam.rstrip()
' Hello World'
