当前位置:网站首页>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()
边栏推荐
- [vscode] search using regular expressions
- Database SQL practice 3. Find the current salary details of the current leaders of each department and their corresponding department number Dept_ no
- Tshydro tool
- [software testing] 05 -- principles of software testing
- 第 2 章:小试牛刀,实现一个简单的Bean容器
- Typescript get timestamp
- How to deal with excessive memory occupation of idea and Google browser
- NPM and package common commands
- 2022.06.27_ One question per day
- M2DGR 多源多场景 地面机器人SLAM数据集
猜你喜欢

SOC_ SD_ CMD_ FSM

HDU1231 最大连续子序列(分治or动规or双指针)

The number of occurrences of numbers in the offer 56 array (XOR)

Altimeter data knowledge point 2

行测--资料分析--fb--高照老师

I 用c l 栈与队列的相互实现
![[node] NVM version management tool](/img/26/f13a2451c2f177a86bcb2920936468.png)
[node] NVM version management tool

Miracast技术详解(一):Wi-Fi Display

611. Number of effective triangles

Rough notes of C language (1)
随机推荐
Microservice registry Nacos introduction
Professional knowledge of public security -- teacher bilitong
CADD课程学习(5)-- 构建靶点已知的化合结构(ChemDraw)
611. Number of effective triangles
How to deal with excessive memory occupation of idea and Google browser
docker安装mysql并使用navicat连接
DelayQueue延迟队列的使用和场景
Ggplot2 drawing learning notes in R
氫氧化鈉是什麼?
Three body goal management notes
[framework] multi learner
Idea shortcut key
Clickhouse database installation deployment and remote IP access
U-boot initialization and workflow analysis
golang定时器使用踩的坑:定时器每天执行一次
Jenkins reported an error. Illegal character: '\ufeff'. Class, interface or enum are required
Machine learning Seaborn visualization
【Node】npm、yarn、pnpm 区别
2022 PMP project management examination agile knowledge points (7)
Line test -- data analysis -- FB -- teacher Gao Zhao