在python3.5中将字符串转换为元组

2024-06-26 14:31:59 发布

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

但现在我想将其转换为以下元组格式:

((1231, 123), (2341, 1210), (342,12), (5462, 565))

我真的需要找到一种方法将这些数据转换成上面的格式。我将非常感谢任何帮助!你知道吗

如何将字符串转换成成对的元组?我已经试过了

with open("data.txt") as f:
    list = [line.rstrip('\n') for line in f] 
    mylist = [mylist[x:x+1] for x in range(0, len(mylist), 3)]
    print(mylist)


data = ['I went to work but got delayed at other work and got stuck in a traffic and I went to drink some coffee but got no money and asked for money']

我希望我的输出是这种格式

[('i', 'went'),('to', 'work'),('but', 'got').........]

我试过了,但没用


import itertools
import nltk
import collections
f=open('readme.txt','r')
data=f.read()
print(data)
d1 = data[0].split() 
output = list(itertools.zip_longest(d1[::2],d1[1::2],fillvalue = None)) 
print(output)

从注释编辑-文件内容:

['भिन्केन NNP डच NNP प्रकाशन NN समूह NN एल्सेभियर NNP एन.भी. FB को PKO अध्यक्ष NN हुनुहुन्छ VBF । YF कन्सोलिडेटिड NNP गोल्ड NN फिल्ड्स NN पीएलसी NNP का PKO पूर्व JJ सभापति NN ५५ CD वर्षीय JJ रूडोल्फ NNP अग्न्यु NNP लाई PLAI यस DUM ब्रिटिस NNP औद्योगिक JJ समूह NN को PKO सल्लाहकार NN को PKO रूप NN मा POP मनोनयन NN गरिएको VBKO थियो VBX । YF एकताका RBO केन्ट NNP चुरोट NN को PKO फिल्टर NN बनाउन VBI प्रयोग NN भएको VBKO एक CD प्रकार NN को PKO अस्बेस्टोस NNP '] 

Tags: andtoinfordata格式nnbut
2条回答
splittedData = data[0].split(' ')
counter = len(splittedData)
if counter%2 == 0:
  pass
else:
  counter += 1
output_list= []
for x in range(counter/2):
  output_list.append((splittedData[x], splittedData[x+1]))

你可以使用itertools.zip_longest wich还可以通过向较短的列表提供默认值(如果未另行指定,则为None)来压缩不均匀的长列表:

在空格处拆分数据并将子列表馈送到zip:一次从0开始,一次从1开始,两次都仅使用其他(第二个)元素:

data = ['I went to work but got delayed at other work and got stuck in a traffic and I went to drink some coffee but got no money and asked for money']

import itertools
d1 = data[0].split() 

# use 2 partial lists, using every 2nd word, once staring at 0, once at 1
# you can change   fillvalue=None   to some other value or remove it - None is the default.
output = list(itertools.zip_longest(d1[::2],d1[1::2], fillvalue = None)) 

print(output)

输出:

[('I', 'went'), ('to', 'work'), ('but', 'got'), ('delayed', 'at'), ('other', 'work'), 
 ('and', 'got'), ('stuck', 'in'), ('a', 'traffic'), ('and', 'I'), ('went', 'to'), 
 ('drink', 'some'), ('coffee', 'but'), ('got', 'no'), ('money', 'and'), 
 ('asked', 'for'), ('money', None)]

提供给zip_longest的子列表如下所示:

print(d1[::2])

['I', 'to', 'but', 'delayed', 'other', 'and', 'stuck', 'a', 'and', 'went', 'drink', 
 'coffee', 'got', 'money', 'asked', 'money']

以及

print(d1[1::2])

['went', 'work', 'got', 'at', 'work', 'got', 'in', 'traffic', 'I', 'to', 'some', 
 'but', 'no', 'and', 'for']

以下部分改编自Convert string representation of list to list

# -*- coding: utf-8 -*-

import ast

# create your file as utf8
with open("myfile.txt","w", encoding="utf8") as f:
    f.write("['भिन्केन NNP डच NNP प्रकाशन NN समूह NN एल्सेभियर NNP एन.भी. FB को PKO अध्यक्ष NN हुनुहुन्छ VBF । YF कन्सोलिडेटिड NNP गोल्ड NN फिल्ड्स NN पीएलसी NNP का PKO पूर्व JJ सभापति NN ५५ CD वर्षीय JJ रूडोल्फ NNP अग्न्यु NNP लाई PLAI यस DUM ब्रिटिस NNP औद्योगिक JJ समूह NN को PKO सल्लाहकार NN को PKO रूप NN मा POP मनोनयन NN गरिएको VBKO थियो VBX । YF एकताका RBO केन्ट NNP चुरोट NN को PKO फिल्टर NN बनाउन VBI प्रयोग NN भएको VBKO एक CD प्रकार NN को PKO अस्बेस्टोस NNP ']")

# load your file, using utf8
with open("myfile.txt","r",encoding="utf8") as f:
    data = f.read()
# convert the loaded string literal into a python list    
dataAsList = ast.literal_eval(data)

print(dataAsList)
print(type(dataAsList))

import itertools
d1 = dataAsList[0].split() 

# use 2 partial lists, using every 2nd word, once staring at 0, once at 1
# you can change   fillvalue=None   to some other value or remove it - None is the default.
output = list(itertools.zip_longest(d1[::2],d1[1::2], fillvalue = None)) 

print(p)

输出:

['भिन्केन NNP डच NNP प्रकाशन NN समूह NN एल्सेभियर NNP एन.भी. FB को PKO अध्यक्ष NN हुनुहुन्छ VBF । YF कन्सोलिडेटिड NNP गोल्ड NN फिल्ड्स NN पीएलसी NNP का PKO पूर्व JJ सभापति NN ५५ CD वर्षीय JJ रूडोल्फ NNP अग्न्यु NNP लाई PLAI यस DUM ब्रिटिस NNP औद्योगिक JJ समूह NN को PKO सल्लाहकार NN को PKO रूप NN मा POP मनोनयन NN गरिएको VBKO थियो VBX । YF एकताका RBO केन्ट NNP चुरोट NN को PKO फिल्टर NN बनाउन VBI प्रयोग NN भएको VBKO एक CD प्रकार NN को PKO अस्बेस्टोस NNP ']

<class 'list'>

[('भिन्केन', 'NNP'), ('डच', 'NNP'), ('प्रकाशन', 'NN'), ('समूह', 'NN'), 
 ('एल्सेभियर', 'NNP'), ('एन.भी.', 'FB'), ('को', 'PKO'), ('अध्यक्ष', 'NN'), 
 ('हुनुहुन्छ', 'VBF'), ('।', 'YF'), ('कन्सोलिडेटिड', 'NNP'), ('गोल्ड', 'NN'), 
 ('फिल्ड्स', 'NN'), ('पीएलसी', 'NNP'), ('का', 'PKO'), ('पूर्व', 'JJ'), 
 ('सभापति', 'NN'), ('५५', 'CD'), ('वर्षीय', 'JJ'), ('रूडोल्फ', 'NNP'), 
 ('अग्न्यु', 'NNP'), ('लाई', 'PLAI'), ('यस', 'DUM'), ('ब्रिटिस', 'NNP'), 
 ('औद्योगिक', 'JJ'), ('समूह', 'NN'), ('को', 'PKO'), ('सल्लाहकार', 'NN'), 
 ('को', 'PKO'), ('रूप', 'NN'), ('मा', 'POP'), ('मनोनयन', 'NN'), 
 ('गरिएको', 'VBKO'), ('थियो', 'VBX'), ('।', 'YF'), ('एकताका', 'RBO'), 
 ('केन्ट', 'NNP'), ('चुरोट', 'NN'), ('को', 'PKO'), ('फिल्टर', 'NN'), 
 ('बनाउन', 'VBI'), ('प्रयोग', 'NN'), ('भएको', 'VBKO'), ('एक', 'CD'), 
 ('प्रकार', 'NN'), ('को', 'PKO'), ('अस्बेस्टोस', 'NNP')] 

相关问题 更多 >