如何从字符串创建组?

2024-05-16 04:03:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串,我将对这个字符串进行拆分,然后我将得到320个元素。我需要创建4个组。每组将包含100个元素,最后一组必须包含20个最后元素。最后一步是所有组都必须是字符串而不是列表。我该怎么做? 如果我知道我有多少元素,我可以做到:

s_l = 'AA   AAL   AAOI   ACLS   ADT   ADTX   ADVM   AEL   AIG   ALEC   ALLY   ALT   AMCX   ANGI   APA   APDN   APLS   APPS   APRN   AQUA   ARMK   ARNC   ARVN   ATNM   ATOM   ATRA   ATSG   AVCT   AVT   AX   AXDX   BCLI   BE   BEAM   BJRI   BKE   BKU   BLDR   BLNK   BMRA   BOOT   BXS   BYD   CAKE   CALX   CAPR   CARG   CARR   CARV   CATM   CC   CCL   CELH   CEQP   CFG   CHEF   CHRS   CIT   CLDX   CLR   CLSK   CNK   CNST   CODX   COLB   COOP   CPE   CRS   CTVA   CUK   CVET   CVI   CVM   CYTK   DAL   DBX   DCP   DDS   DEI   DISCA   DISCK   DK   DNB   DRNA   DVAX   DXC   ECOM   EIGR   ELAN   ELF   ELY   ENVA   EQ   EQT   EXEL   FE   FHI   FIXX   FL   FLWS   FMCI   FORM   FOX   FOXA   FRTA   FUN   GBX   GIII   GM   GNMK   GOCO   GPRE   GRAF   GRPN   GRWG   GTHX   GWB   HALO   HCC   HCSG   HEAR   HFC   HGV   HIBB   HMSY   HOG   HOME   HP   HSC   HTH   HWC   IMUX   IMVT   INO   INOV   INSG   INSM   INT   IOVA   IRDM   ITCI   JELD   JWN   KMT   KODK   KPTI   KSS   KTB   KTOS   KURA   LAKE   LB   LCA   LL   LPI   LPRO   LSCC   LYFT   MAXR   MBOT   MCRB   MCS   MD   MDP   MGM   MGNX   MIC   MLHR   MOS   MRSN   MTOR   MXL   MYGN   NCLH   NCR   NK   NKTR   NLS   NMIH   NOVA   NTLA   NTNX   NUAN   NVST   NXTC   ODP   OFC   OKE   OMER   OMF   OMI   ONEM   OSPN   OSUR   OXY   OZK   PACW   PD   PDCE   PDCO   PEAK   PGNY   PLAY   PLCE   PLT   PLUG   PPBI   PRPL   PRTS   PRVB   PS   PSNL   PSTX   PSXP   PTGX   PVAC   RCUS   REAL   REZI   RKT   RMBL   RPAY   RRGB   RRR   RVLV   RVP   RXN   SANM   SAVE   SBGI   SC   SCPL   SEAS   SEM   SFIX   SFM   SGMS   SGRY   SHLL   SHOO   SHYF   SIX   SKX   SLQT   SMCI   SNAP   SNDX   SNV   SONO   SPAQ   SPCE   SPR   SPWH   SPWR   SRG   SRNE   SSNT   SSSS   STOR   SUM   SUN   SUPN   SVMK   SWBI   SYF   SYRS   TBIO   TCDA   TCF   TCRR   TDC   TEX   TFFP   TGTX   THC   TMHC   TRGP   TRIP   TSE   TUP   TVTY   UBX   UCBI   UCTT   UFS   UNFI   UONE   UPWK   URBN   USFD   VCRA   VERI   VIAC   VIRT   VIVO   VREX   VSLR   VSTO   VXRT   WAFD   WBS   WFC   WHD   WIFI   WKHS   WORK   WORX   WRK   WRTC   WW   WWW   WYND   XEC   XENT   XPER   XRX   YELP   ZGNX   ZUMZ   ZYXI'
split_s_l = s_l.split("   ")
part_1 = '  '.join(split_s_l[:100])
part_2 = '  '.join(split_s_l[100:200])
part_3 = '  '.join(split_s_l[200:300])
part_4 = '  '.join(split_s_l[300:])

for part in (part_1, part_2, part_3, part_4):
    print(part)

但若列表中有很多元素,我不知道该怎么做


Tags: 字符串元素列表aasplitjoinpartaig
3条回答

对于数量可变的项目,可以使用以下方法循环:

sep = '  '
num = 100

split_s_l = s_l.split(sep)

for i in range(0, len(split_s_l), num):
    part = sep.join(split_s_l[i : i+num])
    print(part)

请记住,对于示例中的最后一个片段([300:400]),只有320个元素并不重要,只包括最后20个项目(无错误)

下面

s_l = 'AA   AAL   AAOI   ACLS   ADT   ADTX   ADVM   AEL   AIG   ALEC   ALLY   ALT   AMCX   ANGI   APA   APDN   APLS   APPS   APRN   AQUA   ARMK   ARNC   ARVN   ATNM   ATOM   ATRA   ATSG   AVCT   AVT   AX   AXDX   BCLI   BE   BEAM   BJRI   BKE   BKU   BLDR   BLNK   BMRA   BOOT   BXS   BYD   CAKE   CALX   CAPR   CARG   CARR   CARV   CATM   CC   CCL   CELH   CEQP   CFG   CHEF   CHRS   CIT   CLDX   CLR   CLSK   CNK   CNST   CODX   COLB   COOP   CPE   CRS   CTVA   CUK   CVET   CVI   CVM   CYTK   DAL   DBX   DCP   DDS   DEI   DISCA   DISCK   DK   DNB   DRNA   DVAX   DXC   ECOM   EIGR   ELAN   ELF   ELY   ENVA   EQ   EQT   EXEL   FE   FHI   FIXX   FL   FLWS   FMCI   FORM   FOX   FOXA   FRTA   FUN   GBX   GIII   GM   GNMK   GOCO   GPRE   GRAF   GRPN   GRWG   GTHX   GWB   HALO   HCC   HCSG   HEAR   HFC   HGV   HIBB   HMSY   HOG   HOME   HP   HSC   HTH   HWC   IMUX   IMVT   INO   INOV   INSG   INSM   INT   IOVA   IRDM   ITCI   JELD   JWN   KMT   KODK   KPTI   KSS   KTB   KTOS   KURA   LAKE   LB   LCA   LL   LPI   LPRO   LSCC   LYFT   MAXR   MBOT   MCRB   MCS   MD   MDP   MGM   MGNX   MIC   MLHR   MOS   MRSN   MTOR   MXL   MYGN   NCLH   NCR   NK   NKTR   NLS   NMIH   NOVA   NTLA   NTNX   NUAN   NVST   NXTC   ODP   OFC   OKE   OMER   OMF   OMI   ONEM   OSPN   OSUR   OXY   OZK   PACW   PD   PDCE   PDCO   PEAK   PGNY   PLAY   PLCE   PLT   PLUG   PPBI   PRPL   PRTS   PRVB   PS   PSNL   PSTX   PSXP   PTGX   PVAC   RCUS   REAL   REZI   RKT   RMBL   RPAY   RRGB   RRR   RVLV   RVP   RXN   SANM   SAVE   SBGI   SC   SCPL   SEAS   SEM   SFIX   SFM   SGMS   SGRY   SHLL   SHOO   SHYF   SIX   SKX   SLQT   SMCI   SNAP   SNDX   SNV   SONO   SPAQ   SPCE   SPR   SPWH   SPWR   SRG   SRNE   SSNT   SSSS   STOR   SUM   SUN   SUPN   SVMK   SWBI   SYF   SYRS   TBIO   TCDA   TCF   TCRR   TDC   TEX   TFFP   TGTX   THC   TMHC   TRGP   TRIP   TSE   TUP   TVTY   UBX   UCBI   UCTT   UFS   UNFI   UONE   UPWK   URBN   USFD   VCRA   VERI   VIAC   VIRT   VIVO   VREX   VSLR   VSTO   VXRT   WAFD   WBS   WFC   WHD   WIFI   WKHS   WORK   WORX   WRK   WRTC   WW   WWW   WYND   XEC   XENT   XPER   XRX   YELP   ZGNX   ZUMZ   ZYXI'
words= s_l.split("   ")
num_of_100_groups = int(len(words) / 100)
groups = []
for i in range(0,num_of_100_groups):
    groups.append(words[i * 100 : (i+1) * 100])
groups.append(words[num_of_100_groups * 100:])
for sub_group in groups:
    print(' '.join(sub_group))

像这样的

def break_up(s, nwords, separator):
    words = s.split()
    return [separator.join(words[n:n+nwords]) for n in range(0, len(words), nwords)]


print(break_up('a b c d e f g h', 3, ' '))

结果:

['a b c', 'd e f', 'g h']

当然,您可以调用为print(break_up(s_l, 100, ' '))

相关问题 更多 >