当前位置:网站首页>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()
边栏推荐
- PowerManagerService(一)— 初始化
- Detailed explanation of miracast Technology (I): Wi Fi display
- Idea push project to code cloud
- How to modify the file path of Jupiter notebook under miniconda
- Install deeptools in CONDA mode
- GPIO port bit based on Cortex-M3 and M4 with operation macro definition (can be used for bus input and output, STM32, aducm4050, etc.)
- docker安装mysql并使用navicat连接
- Matrix keyboard scan (keil5)
- C#学习笔记
- [software testing] 05 -- principles of software testing
猜你喜欢

Steps and FAQs of connecting windows Navicat to Alibaba cloud server MySQL
![[idea] efficient plug-in save actions to improve your work efficiency](/img/6e/49037333964865d9900ddf5698f7e6.jpg)
[idea] efficient plug-in save actions to improve your work efficiency

Don't confuse the use difference between series / and / *
![[software testing] 04 -- software testing and software development](/img/bd/49bba7ee455ce59e726a2fdeafc7c3.jpg)
[software testing] 04 -- software testing and software development

C#学习笔记

Tshydro tool

【无标题】

Today, share the wonderful and beautiful theme of idea + website address

剑指 Offer 56 数组中数字出现的次数(异或)

DelayQueue延迟队列的使用和场景
随机推荐
纯碱是做什么的?
1290_ Implementation analysis of prvtaskistasksuspended() interface in FreeRTOS
golang定时器使用踩的坑:定时器每天执行一次
[software testing] 05 -- principles of software testing
Explanation of parallel search set theory and code implementation
Reading literature sorting 20220104
Import CV2, prompt importerror: libcblas so. 3: cannot open shared object file: No such file or directory
How to deal with excessive memory occupation of idea and Google browser
CADD course learning (5) -- Construction of chemosynthesis structure with known target (ChemDraw)
The golang timer uses the stepped pit: the timer is executed once a day
Three body goal management notes
window navicat连接阿里云服务器mysql步骤及常见问题
Docker installs MySQL and uses Navicat to connect
剑指 Offer 56 数组中数字出现的次数(异或)
I can't stand the common annotations of idea anymore
Delayqueue usage and scenarios of delay queue
【Node】npm、yarn、pnpm 区别
[idea] efficient plug-in save actions to improve your work efficiency
[OBS] x264 Code: "buffer_size“
Matrix keyboard scan (keil5)