我有两个列表:focalStart
(从另一个函数导入)是时间戳列表,而startDate
是从csv文件读取的时间戳。该函数的目标是遍历focalStart
并将索引附加到新列表start
中,如果元素大于或等于{{ 1}},并且大于第i + 1个 元素。
我拥有的代码有效,但是startDate
的长度取决于csv文件,并且会更改。我知道可以使用循环来完成此操作,但是我尝试过的所有操作均不起作用。感谢所有帮助。
startDate
答案 0 :(得分:0)
尝试:
for x in focalStart:
for y in range(len(startDate)):
if x >= startDate[y] and x < startDate[y+1]:
start.append(startDate[y])
答案 1 :(得分:0)
虽然另一个答案很接近,但我相信您需要在startDate条件周围加上len(),以便将索引传递给range()。试试这个:
for x in focalStart:
for y in range(len(startDate)):
if x >= startDate[y] and x < startDate[y+1]:
start.append(startDate[y])
答案 2 :(得分:0)
如果您保证import React, { Component } from 'react';
import { Redirect, Route, Switch } from 'react-router-dom';
import { Container } from 'reactstrap';
import {
AppAside,
AppBreadcrumb,
AppFooter,
AppHeader,
AppSidebar,
AppSidebarFooter,
AppSidebarForm,
AppSidebarHeader,
AppSidebarMinimizer,
AppSidebarNav,
} from '@coreui/react';
// sidebar nav config
import navigation from '../../_nav';
// routes config
import routes from '../../routes';
import DefaultAside from './DefaultAside';
import DefaultFooter from './DefaultFooter';
import DefaultHeader from './DefaultHeader';
class DefaultLayout extends Component {
render() {
//console.log(localStorage.getItem('jwtToken'));
console.log(`default layout props:\n ${this.props}`);
return (
<div className="app">
<AppHeader fixed>
<DefaultHeader />
</AppHeader>
<div className="app-body">
<AppSidebar fixed display="lg">
<AppSidebarHeader />
<AppSidebarForm />
<AppSidebarNav navConfig={navigation} {...this.props} />
<AppSidebarFooter />
<AppSidebarMinimizer />
</AppSidebar>
<main className="main">
<AppBreadcrumb appRoutes={routes}/>
<Container fluid>
<Switch>
{routes.map((route, idx) => {
return route.component ? (<Route key={idx} path={route.path} exact={route.exact} name={route.name} render={props => (
<route.component {...props} />
)} />)
: (null);
},
)}
<Redirect exact from='/authenticated' to='/dashboard'/>
</Switch>
</Container>
</main>
<AppAside fixed hidden>
<DefaultAside />
</AppAside>
</div>
<AppFooter>
<DefaultFooter />
</AppFooter>
</div>
);
}
}
export default DefaultLayout;
的长度是startDate
的一倍或更多,那么就可以做到这一点而不必使用嵌套循环。
focalStart
start = []
for (index, timeStamp) in enumerate(focalStart):
if(timeStamp >= startDate[index] and timeStamp > startDate[index+1]):
start.append(index)
将enumerate(focalStart)
设置为timeStamp
的元素,同时将focalStart
设置为在index
中找到的timeStamp
的位置。