Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 跳过列表,直接进入列表_Python_List - Fatal编程技术网

Python 跳过列表,直接进入列表

Python 跳过列表,直接进入列表,python,list,Python,List,我从文本文件中读取行,然后将它们以2个字符对插入列表中 例如hello=['he','el','ll','lo']。 在我当前的代码中,对行的初始读取会将每一行转换为它自己的列表,然后将其放入一个列表,给我一个列表列表。因此,这两条线 你好 world 给我列表[[['he'、'el'、'll'、'lo']、['wo'、'or'、'rl'、'ld']]。我可以用这段代码和singleList=sum(listlist,[])这将给我一个列表,但是这是低效的,因为它在列表上迭代了两次(我读到一则说

我从文本文件中读取行,然后将它们以2个字符对插入列表中
例如
hello=['he','el','ll','lo']
。 在我当前的代码中,对行的初始读取会将每一行转换为它自己的列表,然后将其放入一个列表,给我一个列表列表。因此,这两条线
你好

world

给我列表
[[['he'、'el'、'll'、'lo']、['wo'、'or'、'rl'、'ld']]
。我可以用这段代码和
singleList=sum(listlist,[])
这将给我一个列表,但是这是低效的,因为它在列表上迭代了两次(我读到一则说明,说这是一种不好的方法)

如何获取代码,并在第一次传递时将行中的值输入到单个列表中

def countPairs():
    print ()
    inFile = open("hello.txt", "r")
    n = 2
    linsiz = []
    for line in inFile:
        line.rstrip('\n')
        linsiz.append([line[i:i+2] for i in range(0,len(line),1)])
    print (linsiz)
    singleList = sum(linsiz,[])
    print (singleList)
countPairs()

无论是谁提出了可能的复制品,他都在试图关闭线程。这根本没有回答我的问题。我确信他们甚至没有读我的帖子,而是认出了一些有
hello=['he'、'el'、'll'、'lo']
的东西,并想“低点海报,让我们关闭它吧”.Idiotic.

您使用的是列表理解,它返回一个列表,您的追加行将一个新列表追加到列表中。您将一个新值推到列表中,但该值是一个列表,因此它将生成一个列表列表

似乎您想要做的是将列表附加到您的列表中,例如:

# linsiz is an array.
linsiz += [line[i:i+2] for i in range(0,len(line),1)]

这与执行以下操作相同:[]+[]或将两个列表连接在一起。

如果使用列表理解(返回列表),则追加行将向列表中追加一个新列表。如果将一个新值推入列表中,但该值是一个列表,因此它将生成一个列表列表

似乎您想要做的是将列表附加到您的列表中,例如:

# linsiz is an array.
linsiz += [line[i:i+2] for i in range(0,len(line),1)]

这与执行以下操作相同:[]+[],或将两个列表连接在一起。

此小更改将完成以下操作:

for line in inFile:
    line.rstrip('\n')
    for i in range(0,len(line),1):
        linsiz.append(line[i:i+2])

这小小的改变就可以做到:

for line in inFile:
    line.rstrip('\n')
    for i in range(0,len(line),1):
        linsiz.append(line[i:i+2])

不要使用在列表中插入新元素的
linsiz.append()
。要将新列表连接到现有列表,请执行以下操作:

linsiz += [line[i:i+2] for i in range(len(line))]


不要使用在列表中插入新元素的
linsiz.append()
。要将新列表连接到现有列表,请执行以下操作:

linsiz += [line[i:i+2] for i in range(len(line))]


您只需使用
extend

def countPairs():
    print()
    with open("hello.txt") as lines:
        linsiz = []
        for line in lines:
            line = line.rstrip('\n')
            linsiz.extend(line[i:i+2] for i in range(len(line)))
    print(linsiz)

您只需使用
extend

def countPairs():
    print()
    with open("hello.txt") as lines:
        linsiz = []
        for line in lines:
            line = line.rstrip('\n')
            linsiz.extend(line[i:i+2] for i in range(len(line)))
    print(linsiz)

有一个标准库,完全用于通用的迭代方法,称为

您的应用程序听起来最像它需要的
itertools.chain.from\u iterable()


有一个标准库,完全用于通用的迭代方法,称为

您的应用程序听起来最像它需要的
itertools.chain.from\u iterable()


您应该
扩展该列表,也可以只使用生成器表达式,无需使用任何中间列表,只需使用:

linsiz.extend(line[i:i+2] for i in range(0,len(line),1))

您应该
扩展该列表,也可以只使用生成器表达式,无需使用任何中间列表,只需使用:

linsiz.extend(line[i:i+2] for i in range(0,len(line),1))

这里有一种方法,使用iterable:

def readPairs(file):
    for line in file:
        for i in range(0, len(line) -1):
            yield line[i:i+2]

def countPairs():
    inFile = open("hello.txt", "r")
    singleList = [pair for pair in readPairs(inFile)];
    print(singleList)

countPairs()

这里有一种方法,使用iterable:

def readPairs(file):
    for line in file:
        for i in range(0, len(line) -1):
            yield line[i:i+2]

def countPairs():
    inFile = open("hello.txt", "r")
    singleList = [pair for pair in readPairs(inFile)];
    print(singleList)

countPairs()

如果您想要调试和查看某些内容,请使用一个小函数为每个单词提供块:

def splitWord(word):
    """yields your 2-character tuplles from your word"""
    last = word[0]
    for n in word[1:]:  # skips first, thats already in last at start
        yield  last+n
        last = n 

def countPairs():
    print ()
    inFile = open("hello.txt", "r")
    n = 2
    linsiz = []

    for line in inFile:
        line.rstrip('\n')
        linsiz.extend(splitWord(line)) # adds all elements of iterable as elements to list
    print (linsiz) 

countPairs()

如果您想要调试和查看某些内容,请使用一个小函数为每个单词提供块:

def splitWord(word):
    """yields your 2-character tuplles from your word"""
    last = word[0]
    for n in word[1:]:  # skips first, thats already in last at start
        yield  last+n
        last = n 

def countPairs():
    print ()
    inFile = open("hello.txt", "r")
    n = 2
    linsiz = []

    for line in inFile:
        line.rstrip('\n')
        linsiz.extend(splitWord(line)) # adds all elements of iterable as elements to list
    print (linsiz) 

countPairs()

只是把列表放在函数之外

final_list=[]
def countPairs():
    inFile = open("filea.txt", "r")
    for line in inFile:
        for j in range(0,len(line.strip()),1):
            data=line[j:j+2].strip()
            if len(data)==1:
                pass
            else:
                final_list.append(data)
countPairs()

print(final_list)
输出:

['he', 'el', 'll', 'lo', 'wo', 'or', 'rl', 'ld']

只是把列表放在函数之外

final_list=[]
def countPairs():
    inFile = open("filea.txt", "r")
    for line in inFile:
        for j in range(0,len(line.strip()),1):
            data=line[j:j+2].strip()
            if len(data)==1:
                pass
            else:
                final_list.append(data)
countPairs()

print(final_list)
输出:

['he', 'el', 'll', 'lo', 'wo', 'or', 'rl', 'ld']

看一看python的@Aaron哦,那东西有病。我要找的肯定是。我原以为只使用基本python,正试图找到一个解决方案。看一看python的@Aaron哦,那东西有病。我要找的肯定是。我原以为只使用基本python,正试图找到解决方案这样的解决方案。可能重复虽然我在堆栈上看到了很多关于一般表达式的内容,但我还不能完全理解它们。在尝试使用它们之前,我需要进一步研究它们。否则,它只是简单的复制和粘贴,最终对我没有好处。不过,我会研究它,是不是av我猜是3.6版本的问题?为什么要使用列表理解呢?列表理解只是一个列表构造函数,它使用其中的生成器表达式。将生成器表达式视为一个元素一个接一个地迭代和生成的东西,你应该通过它迭代来使用它。当没有更多的站点时,生成器将耗尽ms进行计算。这不是同一件事吗?不,这不是同一件事,但您也可以使用
“列表理解只是一个列表构造函数,它使用其中的生成器表达式”-不完全是。但它是相似的。虽然我在堆栈上看到了很多关于一般表达式的内容,但我还不能完全理解它们。在我尝试使用它们之前,我需要对它们进行更多的研究。否则,它只是简单的复制和粘贴,最终对我没有好处。不过,我会研究一下,3.6版是否可用我想?为什么要使用列表理解呢?列表理解只是一个列表构造函数,它使用其中的生成器表达式。将生成器表达式视为一个逐个迭代并生成元素的东西,您应该通过它进行迭代以使用它。当生成器没有更多要计算的项时,它将耗尽这不是和这个一样吗?不,不一样,但是你也可以使用
chain
“列表理解只是一个列表构造器,它消耗其中的生成器表达式”-不是真的。但是它很相似。这很好,但我还是会去掉无用的东西(或修复它)并使用他们的目标名称
singleList
。我不需要line=line.rstrip('\n')吗?否则它会