当前位置:网站首页>String alignment method, self use, synthesis, newrlcjust
String alignment method, self use, synthesis, newrlcjust
2022-07-05 07:28:00 【work-harder】
background
- The content format of multiple strings in the list is inconsistent , There is pure Chinese , Pure English , There is also a mixture of Chinese and English .
- Use python Built-in function str.rjust Isochronous , Unable to align
- win10, anaconda 4.8.3, python 3.8.3
Way
- Calculate the middle of each string 、 Number of English single characters , Adjustment
- See code for details
- Fill character ( Fill in spaces to keep the length of characters ) Only single byte characters are supported temporarily
#
# pure English , Pure Chinese , A list of mixed English and Chinese strings (list) Align content : Right , Left , in
# After import , function chn_en_alignment.test() See how to use
# After import , function chn_en_alignment.newrlcjust(listchk, ttllength, direction ='r', fillwith = '0')
# or import chn_en_alignment.newrlcjust as rlcjust, Again according to rlcjust(' The order of the above parameters ') function
# V1, 20201016
#
# data for test
list1=['abc', 'a', 'abcded', 'aa']
list2=[' Middle core ', ' TSMC ', ' Huawei Technology ']
list3=['NXP', ' Middle core ', ' TSMC ']
list4=['NXP', ' Middle core ', 'Huawei Technology ']
list5=['123', ' in " core "', ' Hua Hua by Wei']
usage=''' Usage: newrlcjust(listchk, ttllength, direction ='r', fillwith = '0') listchk: String element list, To be checked ttllength: Integers , list The width requirements of all string alignment in , ttllength: The numbers are ttllength And list Maximum length of Chinese character conversion The biggest of direction: r-right, l-left, c-center, Default r fillwith: What to fill the empty space with ( If there is ), Default 0 ( zero ), Non English or non single byte characters are not supported at the moment '''
# chn =2, en=1, return additional len
def getLen(strchk):
# get total length, chn calculated as 2, en as 1
strlen = 0
for letter in strchk:
# print(letter, flush=True)
if ord(letter) > 255:
strlen += 2
else:
strlen += 1
return strlen
def newrlcjust(listchk, ttllength, direction ='r', fillwith = '0'):
# listchk: list with elements to be aligned;
# ttllength: total length you see after output;
# direction, default as 'r', one of the three 'r', or 'l', or 'c',
# fillwith, default as '0';
listchkLenmax=max(getLen(x) for x in listchk)
for strchk in listchk:
difflength = 0
if ttllength > listchkLenmax:
listchkLenmax = ttllength
ttl = listchkLenmax - (getLen(strchk)-len(strchk))
if direction == 'r':
print(strchk.rjust(ttl, fillwith))
elif direction == 'l':
print(strchk.ljust(ttl, fillwith))
else:
print(strchk.center(ttl, fillwith))
def test():
print('\n Chinese numeration 2 Width , English numeration 1 Width .')
print('len(str) Middle 、 A single part of English , Average position length 1')
print(usage)
print( "*" * 66, '\n')
print('following are examples: \n')
i_sequence = 0
for lst in [list1, list2, list3, list4, list5]:
print('lst:',lst)
direction=['r','l','c'][i_sequence]
print("example as: newrlcjust(lst, ttllength=1, direction ='" +direction + "', fillwith = '0')")
newrlcjust(lst, ttllength=1, direction =direction, fillwith = '0')
print('\n')
i_sequence += 1
i_sequence = i_sequence % 3
if __name__ == '__main__':
# newrlcjust(list4, 20, direction ='r', fillwith = '…')
# fill Of … , Chinese input method shift + 6, Again backspace once . powershell Cannot enter under
test()
边栏推荐
- docker安装mysql并使用navicat连接
- Typescript get timestamp
- 【Node】npm、yarn、pnpm 区别
- Intelligent target detection 59 -- detailed explanation of pytoch focal loss and its implementation in yolov4
- Simple operation with independent keys (hey, a little fancy) (keil5)
- Unconventional ending disconnected from the target VM, address: '127.0.0.1:62635', transport: 'socket‘
- Shadowless cloud desktop - online computer
- And play the little chestnut of dynamic agent
- I 用c l 栈与队列的相互实现
- CADD course learning (5) -- Construction of chemosynthesis structure with known target (ChemDraw)
猜你喜欢
HDU1231 最大连续子序列(分治or动规or双指针)
(tool use) how to make the system automatically match and associate to database fields by importing MySQL from idea and writing SQL statements
Daily Practice:Codeforces Round #794 (Div. 2)(A~D)
Detailed explanation of miracast Technology (I): Wi Fi display
DataGrid offline installation of database driver
How to modify the file path of Jupiter notebook under miniconda
Ethtool principle introduction and troubleshooting ideas for network card packet loss (with ethtool source code download)
Pytorch has been installed in anaconda, and pycharm normally runs code, but vs code displays no module named 'torch‘
Clickhouse database installation deployment and remote IP access
【Node】nvm 版本管理工具
随机推荐
Netease to B, soft outside, hard in
iNFTnews | 喝茶送虚拟股票?浅析奈雪的茶“发币”
CADD course learning (6) -- obtain the existing virtual compound library (drugbank, zinc)
Application of MATLAB in Linear Algebra (4): similar matrix and quadratic form
(tool use) how to make the system automatically match and associate to database fields by importing MySQL from idea and writing SQL statements
Cookie operation
What is sodium hydroxide?
The SQL implementation has multiple records with the same ID, and the latest one is taken
[node] differences among NPM, yarn and pnpm
HDU1231 最大连续子序列(分治or动规or双指针)
Reading literature sorting 20220104
M2dgr slam data set of multi-source and multi scene ground robot
Intelligent target detection 59 -- detailed explanation of pytoch focal loss and its implementation in yolov4
I can't stand the common annotations of idea anymore
[idea] efficient plug-in save actions to improve your work efficiency
Solve tensorfow GPU modulenotfounderror: no module named 'tensorflow_ core. estimator‘
And play the little chestnut of dynamic agent
[software testing] 02 -- software defect management
611. Number of effective triangles
[software testing] 05 -- principles of software testing